Разработка мобильного приложения для развивающего образовательного центра


ГЛАВА 2. РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ



Pdf көрінісі
бет9/26
Дата29.05.2022
өлшемі1,62 Mb.
#35872
түріРеферат
1   ...   5   6   7   8   9   10   11   12   ...   26
ГЛАВА 2. РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ 
2.1 Анализ требований мобильного приложения 
Для того чтобы нам четко осознавать в каком направлении двигаться в 
дальнейшем, нам необходимо составить список требований которым должно 
соответствовать наше приложение. 
Технические требования: 
1. Соответствовать разработанному дизайну
2. Работать без серьезных ошибок 
3. Работать с версии Android 4.3 
4. Работать без визуальных задержек 
Функциональные требования:
Пользователь заходит в приложение, без какой либо авторизации, как 
только приложение загрузиться должен отобразиться раздел Новости.
Для перехода в другой раздел должны быть кнопка соответствующая 
дизайну вверху слева и возможность открытия меню жестом по экрану слева 
на право. В открытом меню должны быть логотип компании в шапке меню, 
список разделов ниже, с интуитивно понятными картинками и названиями 
разделов. 
В разделе новостей должна быть возможность прокрутки, как только 
загруженные новости кончаются в списке, должны загрузиться еще 
ограниченное количество новостей, если новостей больше нет, то больше 
загрузки происходить недолжно.
В разделе направления при его открытии должен появляется список 
направлений, при нажатии на элемент списка должно открыться новое окно 
либо список с подкатегориями с таким же функционалом. В новом окне 
должно отображаться содержимое, пришедшее с сервера. 
В разделе контакты должны отображаться контактные данные 
предприятия. 


22 
В разделе о нас, отображается таблица с работниками организации с 
фото сотрудников, при нажатии на картинку открывается подробная 
информация о сотруднике в новом окне. 
Согласно выше перечисленным требованиям, которые мы определяем 
для нашего мобильного приложения можно провести анализ который 
поможет нам эффективно, быстро и без лишних финансовых и человеческих 
затрат осуществить комплексную, самодостаточную разработку приложения. 
Приложение можно будет легко расширять, поддерживать, содержать легко 
читаемый программный код, будет понятен людям, которые будут его 
расширять и поддерживать в дальнейшем. 
Для того чтобы более глубже понять принципы разработки, нужно 
понять для какой программной платформы мы будем разрабатывать 
приложение для этого нам нужно познакомиться ближе с операционной 
системой Android[26].
В 86 % смартфонов, проданных во втором квартале 2014 года, была 
установлена операционная система Android. При этом за весь 2014 год было 
продано более 1 миллиарда Android-устройств. 
Продолжая усилия по привлечению к платформе Android новых 
разработчиков, Google начала проводить различные состязания. Первое из 
них, названное Android Developer Challenge (ADC), было проведено в 2008 
году. Победившим проектам были обещаны щедрые денежные призы. ADC 
проводилось и в следующем году, в нем также приняло участие большое 
количество претендентов. В 2010 году ADC не проводилось, что может быть 
объяснено тем, что Android набрала необходимую базу разработчиков и 
поэтому необходимость в привлечении новых участников отпала. Кроме 
того, Google в начале 2010 года начал программу распространения устройств. 
Каждый разработчик, приложение (или приложения) которого было скачано 
более 5000 раз при среднем пользовательском рейтинге не менее 3,5 звезды, 
получал новый телефон Motorola Droid, Motorola Milestone или Nexus One. 
Эта акция вызвала бурную реакцию сообщества разработчиков, хотя 


23 
поначалу столкнулась с недоверием. Многие считали полученные по 
электронной почте уведомления продуманной мистификацией. К счастью, 
все оказалось правдой, и тысячи разработчиков по всему миру получили в 
подарок устройства — удачный шаг со стороны Google по привлечению 
новых разработчиков и поддержке уверенности уже привлеченных. Помимо 
этого Google предлагает разработчикам специальную версию аппаратов — 
Android Dev Phone (ADP). Первым ADP был вариант T-Mobile G1 для 
разработчиков (также известный как HTC Dream). Следующее поколение, 
ADP 2, было вариантом HTC Magic. К тому же Google продавала 
собственный телефон (Nexus One) конечным пользователям. Хотя 
изначально он не позиционировался как девелоперский, многие 
рассматривали его как потомка ADP 2. В итоге Google прекратила продажи 
Nexus One потребителям, и теперь он доступен только для ее партнеров и 
разработчиков. Этот аппарат компании Samsung, работающий на Android 2.3 
(Gingerbread), называется Nexus S. ADP-устройства могут быть приобретены 
на Android Market (для этого необходимо иметь учетную запись 
разработчика). Ежегодная конференция Google I/O — мероприятие, на 
котором демонстрируются новейшие и лучшие технологии и проекты Google, 
и Android в последние годы занимает среди них особое место. На Google I/O 
обычно проводится несколько сессий, связанных с Android[25]. 
Android - операционная система для смартфонов, интернет-планшетов, 
электронных книг, цифровых проигрывателей, наручных часов, игровых 
приставок, нетбуков, смартбуков, очков Google, телевизоров и других 
устройств. В будущем планируется поддержка автомобилей и бытовых 
роботов. Основана на ядре Linux и собственной реализации виртуальной 
машины Java от Google. Изначально разрабатывалась компанией Android, 
Inc., которую затем купила Google. Впоследствии Google инициировала 
создание альянса Open Handset Alliance (OHA), который сейчас занимается 
поддержкой и дальнейшим развитием платформы. Android позволяет 
создавать Java-приложения, управляющие устройством через разработанные 


24 
Google библиотеки. Android Native Development Kit позволяет портировать 
библиотеки и компоненты приложений, написанные на Си и других 
языках[25]. 
Это не просто еще один дистрибутив Linux для мобильных устройств. 
При разработке для Android вам, скорее всего, не придется иметь дело с сами 
ядром Linux. C точки зрения программиста, Android — платформа, 
абстрагирующая разработчика от ядра и позволяющая ему создавать код на 
Java. Android обладает несколькими полезными возможностями. Во-первых, 
это фреймворк, предлагающий большой набор API для создания различных 
типов приложений и, кроме того, обеспечивающий возможности повторного 
использования и замены компонентов, которые предлагаются платформой и 
сторонними приложениями. Во-вторых, наличие виртуальной машины 
Dalvik, отвечающей за запуск приложений на Android. Кроме того, к услугам 
разработчика набор графических библиотек для 2D- и 3D-приложений, 
поддержка мультимедиа-форматов (Ogg Vorbis, MP3, MPEG-4, H.264, PNG), 
API для доступа к камере, GPS, компасу, акселерометру, сенсорному экрану, 
джойстику и клавиатуре. Имеется даже специальное API для 
воспроизведения фоновых звуковых эффектов, которое пригодится нам при 
разработке игр. Не все Android-устройства обладают всеми этими 
возможностями — налицо аппаратное разделение. Конечно, список 
возможностей Android не исчерпывается упомянутыми мной. Архитектура 
Android формируется из набора компонентов. Каждый компонент построен 
на основе элементов более низкого уровня. На рис. 1 представлен краткий 
обзор главных компонентов Android. 


25 
Рис 1. Архитектура Android 
Фреймворк приложения связывает вместе системные библиотеки и 
среду выполнения, создавая, таким образом, пользовательскую сторону 
Android. Фреймворк управляет приложениями и предлагает продуманную 
среду, в которой они работают. Разработчики создают приложения для этого 
фреймворка с помощью набора программных интерфейсов на Java, 
охватывающих такие области, как разработка пользовательского интерфейса, 
фоновые службы, оповещения, управление ресурсами, доступ к периферии и 
т. д. Все ключевые приложения, поставляемые вместе с ОС Android 
(например, почтовый клиент), написаны с помощью этих API. Приложения, 
будь они с интерфейсом или с фоновыми службами, могут связываться с 
другими приложениями. Эта связь позволяет одному приложению 
использовать компоненты других. Простой пример — программа, делающая 
фотоснимок и потом обрабатывающая его. Приложение запрашивает у 
системы компонент другого приложения, обеспечивающий это действие
Далее первое приложение может повторно использовать этот компонент 
(например, от встроенного приложения камеры или от фотогалереи). 


26 
Подобный алгоритм снимает значительную часть ноши с программиста, а 
также позволяет настроить многообразие аспектов поведения Android. 
В 
программировании 
для 
Android 
используются 
объектно-
ориентированные технологии, поэтому мы приведем обзор объектных 
технологий. В условиях постоянно растущего спроса на новые мощные 
программные продукты достаточно трудно сочетать такие требования, как 
быстрота разработки, правильность работы и экономичность. Объекты, по 
сути, 
представляют 
собой 
повторно 
используемые 
программные 
компоненты. В качестве объектов могут использоваться дата, время, видео, 
человек, автомобиль и другие предметы материального мира. Практически 
каждое существительное может быть адекватно представлено программным 
объектом в понятиях атрибутов (например, имя, цвет и размер) и поведений 
(например, вычисление, перемещение и передача данных). Разработчики 
программ видят, что использование модульной структуры и объектно-
ориентированного проектирования при разработке приложений повышает 
продуктивность работы. Этот подход пришел на смену применявшемуся 
ранее структурному программированию — объектно-ориентированный код 
проще понять и изменить[7]. 
Чтобы лучше понять суть объектов и их содержимого, воспользуемся 
простой аналогией. Представьте себе, что мы находимся за рулем 
автомобиля, и нажимаете педаль газа, чтобы набрать скорость. Что должно 
произойти до того, как мы получаем такую возможность? Прежде чем мы 
поведем автомобиль, кто-то должен его спроектировать. Изготовление 
любого автомобиля начинается с инженерных чертежей, которые подробно 
описывают устройство автомобиля. В частности, на этих чертежах показано 
устройство педали акселератора. За этой педалью скрываются сложные 
механизмы, которые непосредственно ускоряют автомобиль, подобно тому, 
как педаль тормоза скрывает механизмы, тормозящие автомобиль, а руль 
скрывает механизмы поворота. Благодаря этому люди, не имеющие понятия 
о внутреннем устройстве автомобиля, могут легко им управлять. Подобно 


27 
тому, как невозможно готовить пищу на кухне, которая лишь изображена на 
листе бумаги, нельзя водить автомобиль, существующий лишь в чертежах. 
Прежде чем мы сядем за руль машины, ее нужно построить на основе 
инженерных чертежей. Воплощенный в металле автомобиль имеет реальную 
педаль газа, с помощью которой он может ускоряться, но и это не все — он 
не может это делать самостоятельно, а только после того, как водитель 
нажмет на педаль. 
Воспользуемся примером с автомобилем для демонстрации некоторых 
ключевых концепций объектно-ориентированного программирования. Для 
выполнения операции в программе требуется метод, в котором «скрываются» 
инструкции программы, непосредственно выполняющие операцию. Метод 
скрывает эти инструкции от пользователя подобно тому, как педаль газа 
автомобиля скрывает от водителя механизмы, вызывающие ускорение 
автомобиля. Программная единица, именуемая классом, включает методы, 
выполняющие задачи класса. Например, класс, представляющий банковский 
счет, может включать три метода, один из которых пополняет счет, второй 
снимает средства со счета, а третий запрашивает текущий баланс. С 
концептуальной точки зрения класс подобен инженерному чертежу, в 
котором изображено устройство педали газа, рулевого колеса и других 
механизмов. 
Водитель не сядет за руль автомобиля, пока его не построят по 
чертежам, так и построение объекта класса необходимо для выполнения 
задач, определяемых методами класса. Этот процесс называется созданием 
экземпляра. Полученный при этом объект называется экземпляром класса. 
На основе одних и тех же чертежей можно создать много автомобилей, 
а на основе одного класса можно создать много объектов. Использование 
существующих классов для создания новых классов экономит время и силы 
разработчика. Повторное использование также облегчает создание более 
надежных и эффективных систем, поскольку ранее созданные классы и 
компоненты обычно проходят тщательное тестирование, отладку и 


28 
оптимизацию. 
Подобно 
тому, 
как 
концепция 
использования 
взаимозаменяемых частей легла в основу промышленной революции, 
повторно используемые классы играют ключевую роль в программной 
революции, которая была инициирована внедрением объектных технологий. 
Когда мы ведем машину, нажатие педали газа отправляет автомобилю 
сообщение с запросом на выполнение определенной задачи (ускорение 
автомобиля). Подобным же образом отправляются сообщения объекту. 
Каждое сообщение представляется вызовом метода, который «сообщает» 
методу объекта о необходимости выполнения некоторой задачи. Например, 
программа может вызвать метод deposit объекта банковского счета, чтобы 
пополнить банковский счет. 
Любой автомобиль помимо возможности выполнять определенные 
операции также обладает атрибутами, такими как цвет, количество дверей, 
запас топлива в баке, показания спидометра и одометра. По аналогии с 
операциями атрибуты автомобиля представляются на инженерных 
диаграммах (в качестве атрибутов автомобиля могут выступать одометр и 
указатель уровня бензина). При вождении автомобиля его атрибуты 
перемещаются вместе с ним. Каждый автомобиль содержит собственный 
набор атрибутов. Например, каждый автомобиль «знает» о том, сколько 
бензина осталось в его баке, но ему ничего не известно о запасах горючего в 
баках других автомобилей. Объект, как и автомобиль, имеет собственный 
набор атрибутов, которые он «переносит» с собой при использовании этого 
объекта в программах. Эти атрибуты определяются как часть объекта класса. 
Например, объект bankaccount имеет атрибут баланса, представляющий 
количество средств на банковском счете. Каждый объект bankaccount «знает» 
о количестве средств на собственном счете, но ничего не «знает» о размерах 
других банковских счетов. Атрибуты определяются с помощью других 
переменных экземпляра класса. 


29 
Классы инкапсулируют атрибуты и методы в объекты (атрибуты и 
методы объекта между собой тесно связаны). Объекты могут обмениваться 
информацией между собой, но обычно они не «знают» о деталях реализации 
других объектов, которые скрыты внутри самих объектов. Подобное 
сокрытие информации жизненно важно в практике хороших программных 
архитектур. 
С помощью наследования можно быстро и просто создать новый класс 
объектов. При этом новый класс наследует характеристики существующего 
класса, которые при этом могут частично изменяться. Также в новый класс 
добавляются уникальные характеристики, присущие только этому классу. 
Если вспомнить аналогию с автомобилем, «трансформер» является объектом 
более обобщенного класса «автомобиль», у которого может подниматься или 
опускаться крыша.
А теперь ответьте на вопрос, каким образом мы собираемся 
программировать? Скорее всего, таким же образом, как и большинство 
других программистов, — включим компьютер, и начнете вводить исходный 
код программы. Подобный подход годится при создании маленьких 
программ, но что делать в том случае, когда приходится создавать крупный 
программный комплекс, который, например, управляет тысячами банкоматов 
крупного банка? Либо если вам приходится возглавлять команду из 1000 
программистов, занятых разработкой системы управления воздушным 
движением следующего поколения? В таких крупных и сложных проектах 
нельзя просто сесть за компьютер и начать набирать код. Чтобы выработать 
наилучшее решение, следует провести детальный анализ требований к 
программному проекту (то есть определить, что должна делать система) и 
разработать архитектуру, которая будет соответствовать этим требованиям 
(то есть определить, как система будет выполнять свои задачи). В идеале 
перед началом создания кода следует выполнить эту процедуру и тщательно 
проанализировать проект (либо поручить выполнение этой задачи другим 
профессионалам). Если в ходе выполнения этого процесса происходит анализ 


30 
и проектирование системы с применением объектно-ориентированного 
подхода, значит, мы имеем дело с процессом объектно-ориентированного 
анализа и проектирования (ООАП). Языки программирования, подобные 
Java, называются объектно-ориентированными. Программирование на таких 
языках, называемое объектно-ориентированным программированием (ООП), 
реализует объектно-ориентированные проекты в виде работоспособных 
систем. 


Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   ...   26




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет