Создание мобильного приложения колледжа ‘Угреша’ для операционной системы iOS

Дипломная работа

Главное направление совершенствования мобильных телефонов можно определить одним понятием: конвергенция технологий. Мобильные телефоны объединили в себе едва ли не всё, что можно и разумно объединять под корпусом одного устройства.

Основные задачи телефона прошлого — совершать и принимать звонки, писать SMS. Сегодня эти задачи дополнилась работой с интернет — ресурсами, прослушиванием музыки, фотосъемкой, использованием игр и приложений. Мобильный будущего, скорее всего, добавит к списку основных задач просмотр телепрограмм, управление различной техникой, функции контроля состояния здоровья своего владельца и возможно многое другое.

Некоторые из перечисленных функций уже существуют в современных телефонах, но пока они относятся к разряду экзотических, а прогресс в области их создания, скорее всего, переведёт наиболее нужные из них в область обыденных. Скорее всего, у аппаратов будущего могут появиться такие возможности, о которых мы сегодня даже не подозреваем.

Эксперты обращают внимание потребителей на тот факт, что сейчас на рынке доступно несколько мобильных платформ, стремительную популярность среди которых в последнее время приобретает iOS и Android. На рынке США компания Apple уже давно заняла пальму первенства в сегменте дорогих и презентабельных мобильных устройств, постоянно удивляя клиента интересными новинками. На примере Apple, видно как кардинально может измениться тот или иной рынок с появлением новых

Что бы ни говорили, а мобильность сегодня — явление глобальное, проникающее во многие сферы нашей жизни. Почти половина всех пользователей мобильных услуг проживают в пяти странах, среди которых и Россия. Ныне потребитель ищет не просто мобильный телефон, он внимательно изучает условия, соотнося их с требованиями современного рынка. Именно поэтому можно утверждать, что развитие мобильных технологий будет только ускоряться.

Целью данной работы является разработка приложение для ОС Ios, назначением которого будет доступ к информации колледжа “Угреша”. Пользователями данного приложения будут студенты и партнёры колледжа.

Для достижения поставленной цели требуется решить следующие задачи:

  • Провести обзор отечественной и зарубежной литературы, по выбранной тематике;
  • Изучить архитектуру, инструменты и особенности разработки приложений для ОС Ios;
  • Создать макет — прототип будущей программы;
  • Разработать приложение согласно макету;

6) Протестировать разработанное приложение.

25 стр., 12274 слов

Создание мобильного приложения для организации

... с ними является актуальной задачей. Целью данной дипломной работы является создание мобильного приложения для организации информационного обмена между мобильными сотрудниками компании ООО " ... приложение запущено. мобильный информационный интерфейс Пользовательский интерфейс приложения должен быть нативным для платформы Android и соответствовать основным рекомендациям по разработке приложений для ...

Introduction

The main direction of improvement of mobile phones can be determined by a single concept: the convergence of technologies. Mobile phones have combined almost all that is possible and reasonable to unite under a single housing unit.main tasks of the last number — make and receive calls, write SMS. Today, these tasks would complement the work with the Internet — resources, listening to music, photography, the use of games and applications. Mobile Future is likely to add to the list of the main tasks of television viewing, control various appliances, health condition monitoring functions to its owner and possibly much more.of these functions are already exist in modern phones, but as long as they belong to the category of exotic and progress of their creation will likely translate most of them are desired to everyday. Most likely, future devices may appear such opportunities, which we today do not even suspect.draw consumers’ attention to the fact that now on the market are several mobile platforms, including the rapid popularity lately acquires iOS and Android. In the U.S. market, Apple has long taken the palm in the segment of luxury and presentable mobile devices constantly surprising interesting new client.

On the example of Apple, is seen as fundamentally can change this or that market with the advent of new devices.is said and mobility today — a global phenomenon, penetrating many areas of our lives. Nearly half of all users of mobile services reside in the five countries, among them Russia. Now the consumer is looking for not just a cell phone, he carefully examines conditions relating them to the requirements of the modern market. That is why it can be argued that the development of mobile technologies will only accelerate.aim of this work is to develop an application for Windows Ios, appointment, which will have access to college information «Ugresha.» Users of this application will be college students and partners.achieve this goal we need to solve the following tasks:

  • Conduct a review of domestic and foreign literature on selected topics;
  • Examine the architecture, tools, and application development features for OS Ios;
  • Create a layout — beduyuschey prototype program;
  • Develop an application in accordance with the layout;
  • Develop a user interface;
  • Test the developed application.

1 Обзор мобильной операционной системы ios

операционная система корпорации Apple, устанавливаемая на мобильные телефоны Iphone 3-5, планшеты Ipad, а также на музыкальный плеер Ipod. [1]файл — файл программы для установки на iOS. Система имеет встроенный браузер Safari. Последняя версия ОС — iOS 7.1.1. AppStore — магазин программ для устройств на iOS. Самое большое количество программ для мобильных телефонов. Цена программы в пределах от 0.99 доллара до нескольких тысяч долларов. Для покупки программ требуется привязка к аккаунту пользователя дебетовой карты Visa. После того, как вы привязали карту, с вас снимается доллар, чтобы проверить, все ли в порядке с вашей картой. 1 доллар блокируется на карте, однако через некоторое время он возвращается.

Обновление iOS

Текущую версию iOS вашего устройства можно посмотреть через Настройки — Основные — Об устройстве — Версия

16 стр., 7767 слов

Крупнейшие производители операционных систем и программного обеспечения

... на базе процессора Intel 386, стали доступней. К моменту выхода версии 3.1 операционной системы компьютеры с 386 процессором уже широко использовались. Они обеспечивали хорошую производительность ... требованиям, предъявляемым к ним ОС. Как только аппаратные средства обеспечили должный уровень производительности, достоинства графического интерфейса мгновенно стали очевидны для огромного числа ...

Список iOS меняется от версии к версии. Начиная с 5й версии, появилась интеграция с iCloud (Облачное хранилище).

Как это работает? — все достаточно просто. У тех программ, у которых есть интеграция с iCloud, при вводе данных на одном устройстве они автоматом появляются на другом устройстве. Добавление новых фич ведется от версии к версии.

Недостатки системы AppleiOS:

У системы компании Apple есть ряд существенных недостатков. Как таковой многозадачности нормальной нет — в фоне работают, музыка, радио, закачивание и скачивание. Да и то не во всех приложениях. Когда приложение сворачивается, оно работает некоторое время, а потом останавливается.

Операционная система является закрытой. Нельзя посмотреть список файлов операционной системы и использовать устройство как флешку. Это является одновременно и достоинством. iOS- самая защищенная система в мире.

Достоинства iOS:

Самый крупный магазин приложений с достаточно качественными приложениям.

Быстрота работы системы по сравнению с другими ОС.

Хорошее качество телефонов и планшетов компании Apple.

Быстрая реакция на ошибки и отсутствие вирусов.

Красота интерфейса и графики.

2 Архитектура ОС Ios

Еще одно отличие веб-приложений, работающих в браузерах Safari, заключается в том, что родные приложения взаимодействуют напрямую с ОС iOS и родными системными платформами iOS. ОС выступает в роли посредника между приложением и аппаратным оснащением. Ключевое преимущество этого посредничества или абстрагирования в том, что родным приложениям не нужно заботиться о будущих изменениях в спецификации устройства или в его аппаратном оснащении. ОС предоставляет приложениями необходимую информацию о способностях аппаратного оснащения (то есть, имеет ли устройство камеру?), а также о спецификациях устройства (то есть, приложение запускается на iPhone или iPad?).[11][7]архитектуру можно разобрать на 4 отдельных слоя: (1) CocoaTouch, (2) Media, (3) CoreServices, и (4) Core OS.(рис1) Такая послойная архитектура иллюстрирует нам тот уровень абстракции, где слои высшего уровня больше отделены, а низшие слои выполняют более фундаментальную задачу, и больше связаны с аппаратным оснащением. Здесь не обязательно говорить о том, что слои высшего уровня в некоторых функциях полагаются на низшие слои. Apple рекомендует использовать платформы высшего уровня насколько это возможно часто, так как они зачастую представляют собой объектно-ориентированные абстракции платформ низших слоев. Другими словами, слои высшего уровня косвенно взаимодействуют с аппаратным оснащением посредством слоев низшего уровня, более комплексных. Конечно, у вас остается возможность вернуться к платформам низшего уровня, если платформы высшего уровня не отвечают вашим требованиям.

 архитектура ос  1

Рис.1iOS-архитектура

Дабы освежить память, платформа — это директория, которая содержит динамическую общую библиотеку и ресурсы, связанные с ней: файлы шапки, изображения и так далее. Платформы представляют собой точку доступа к различным системным интерфейсам вроде адресной книги iOS, фотопленке устройства, а также медиатеке.

9 стр., 4174 слов

«Средства визуального программирования приложений» РАЗРАБОТКА ...

... в комплект Qt включена среда разработки «Qt Creator», которая включает в себя редактор кода, справку, графические средства «Qt Designer» и возможность отладки приложений. «Qt Creator» может ... Для построения клиентского приложения применяется библиотека Qt4 и среда разработки «Qt Creator». 1 Теоретическая основа разработки автоматизированной информационной системы 1.1 Qt - кросс-платформенный ...

Слой CocoaTouch

В прошлой статье мы уже писали о CocoaTouch и ее связи с Objective-C. В сегодняшней статье хотелось бы рассказать о CocoaTouch больше с функциональной точки зрения, а точнее о том, как приложения основываются на слое CocoaTouch, и какова ее роль в iOS-архитектуре.

Слой CocoaTouch представляет собой самый верхний слой в iOS-архитектуре. Он содержит некоторые ключевые платформы, на которых основываются родные приложения iOS, и одной из них является платформа UIKit. Слой CocoaTouch определяет основную инфраструктуру приложения и предлагает ряд жизненно важных технологий вроде мультизадачности или ввода посредством сенсоров.

Как мы уже отмечали, iOS-приложения плотно основываются на платформе UIKit. Родные iOS-приложения не могут оперировать, если они не привязаны к платформам UIKit и Foundation. Платформа UIKit тесно связана с iOS. Существует эквивалентная среда разработки платформе OS X, которая имеет название Application Kit или среда разработки AppKit. Среда разработки UIKit предоставляет инфраструктуру для графическихiOS-приложений, управляемых событиями. Тем не менее, она также работает с другими аспектами ядра, присущих платформе iOS (вроде мультизадачности, оповещений и инструментов доступности).

Слой CocoaTouch предоставляет разработчикам большое количество свойств высокого уровня вроде автоматической расстановки шаблона, печати, функций распознавания жестов, а также поддержку документов. Вдобавок к платформе UIKit, она также содержит платформы MapKit, EventKit и Message UI. Если вам нужен полный перечень платформ в слое Cocoa Touch, то предлагаем вам обратиться к руководству iOS Technology Overview

Слой Media

Графика, аудио и видео управляются слоем Media. Этот слой состоит из нескольких ключевых технологий, включая CoreGraphics, OpenGL ES и OpenAL, AV Foundation, а также CoreMedia. Media-слой состоит из множества платформ, включая Assets Library для осуществления доступа к фотографиям и видео устройства, core Image для обработки изображений при помощи фильтров, а также Core Graphics для создания двухмерных графических элементов. Если вам нужен полный перечень платформ в слое Media, то предлагаем вам обратиться к руководству iOS Technology Overview.

Слой CoreServices

Слой CoreServices отвечает за управление основными системными сервисами, которые используют родные iOS-приложения. Слой CocoaTouch тесно связан со слоем Core Services в некоторых аспектах функционала. Слой CoreServices также предоставляет несколько невосполнимых свойств, вроде блочных объектов, Grand Central Dispatch, In-AppPurchase и iCloudStorage.

Одно из основных дополнений в слое CoreServices называется ARC или Automatic Reference Counting. Что такое ARC? Это функция на уровне компилятора, представленная в 2011 с выходом iOS 5, которая упрощает процесс распределения памяти в Objective-C. Распределение памяти — это та тема, которую мы не охватим в наших статьях, но вам важно понимать основу распределения памяти при разработке Cocoa-приложений. Automatic Reference Counting — это отличное дополнение, но вам необходимо знать, для чего оно нужно. Вы можете узнать больше о распределении памяти в руководстве The Objective-C Programming Language.

18 стр., 8712 слов

Разработка мобильного приложения расчета и учета оплаты коммунальных услуг

... курсовой работы является разработка программы на базе Android - приложение, позволяющее вести расчёт и учет платежей ... разработки XCode, либо использовать сторонние сервисы для удаленной компиляции приложений. Публикация приложений ... выполнением программного кода, является одной из ключевых для Android Runtime. Уровень каркаса приложений ... программное обеспечение промежуточного слоя, лежит набор библиотек, ...

Платформа Foundation- это еще одна важная среда разработки для приложений iOS и OS X. В следующей статье мы расскажем о данной платформе более подробно. Платформа Foundation — это больше чем коллекция удобных классов вроде NSArray, NSDictionary и NSDate. Она предлагает корневой класс NSObject, который предоставляет основной интерфейс для Objective-C, а также предлагает различные парадигмы вроде политики объектов собственности. По образу CoreFoundation, среда разработки Foundation делает возможным то, чтобы многие библиотеки и среды разработки могли разделять данные и код.

Еще одна среда разработки слоя Core Services, которая также тесно связана с платформой Foundation, это среда разработки Core Foundation на базе C. Как и Foundation, она позволяет различным библиотекам и средам разработки разделять код и данные. Core Foundation имеет свойство, которое зачастую принято называть бесплатным мостом, который позволяет взаимно заменять объекты Cocoa объектами Core Foundation, и наоборот.

Если вам нужен полный перечень платформ в слое CoreServices, то предлагаем вам обратиться к руководству iOS Technology Overview.

Слой Core OS

Большая часть функционала, предусмотренного в трех слоях высшего уровня, основана на слое Core OS и его низкоуровневых свойствах. Слой core OS предоставляет множество сред разработки, которое ваше приложение может использовать напрямую (например, среды Accelerate и Security).

Слой Core OS инкапсулирует окружающую среду ядра, а также низкоуровневые UNIX-интерфейсы, к которым у вашего приложения нет доступа по очевидным причинам. Тем не менее, посредством основанной на С библиотеки libSystem, ко многим низкоуровневым свойствам можно осуществлять доступ напрямую (например, к сокетам BSD, потокам POSIX и DNS-сервисам).

3Уровень библиотек

Платформа Ios включает набор C/C++[2][3] библиотек, используемых различными компонентами ОС. Для разработчиков доступ к функциям этих библиотек реализован через использование Application Framework. Ниже представлены некоторые из них:

  • SystemObjectModel (SOM) — система объектно-ориентированных динамических библиотек, разработанная CILabs (IBM, Apple, OMG, Adobe, Oracle и др.).

  • Audio Interchange File Format (AIFF) — библиотеки, основанные на IFF компании ElectronicArts, предназначенные для поддержки проигрывания и записи популярных аудио- и видео- форматов (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG и т.п.).

  • WebKit — ядро встроенногоweb-браузера.
  • SurfaceManager — менеджер поверхностей управляет доступом к подсистеме отображения 2D- и 3D- графических слоев.
  • SGL (Scalable Graphics Library) — библиотека для работы с 2D-графикой, основанная на библиотеке SDL (SimpleDirectMediaLayer).

  • 3D libraries — библиотеки для работы с 3D-графикой, основанные на OpenGL ES 1.0 API.
  • FreeType — библиотека, предназначенная для работы со шрифтами.
  • SQLite — легковесная реляционная система управления базами данных.

4 Среды разработки приложения

Разработка приложений для мобильных устройств — это процесс, при котором приложения разрабатываются для небольших портативных устройств, таких как КПК, смартфоны или сотовые телефоны. Эти приложения могут быть предустановлены на устройство в процессе производства, загружены пользователем с помощью различных платформ для распространения ПО или являться веб-приложениями, которые обрабатываются на стороне клиента (JavaScript) или сервера.

12 стр., 5710 слов

Разработка приложений

... Практическая часть курсовой работы написана на языке Swift, вышедшем в 2014 году, как замена Objective-C. Надо отметить, что разработка на Objective ... и неопытный разработчик. MVP(model-view-presenter) Рисунок 2.2 – Схема приложения, использующего концепцию MVP В данной концепции предполагается использвание представителя. Обычно представитель ... U13 Если на компьютере не установлен Xcode, то возм

1.4.1 Xcode

При разработке приложений используется набор iOS-разработчика, так называемый SDK, а также Xcode — интегрированную среду разработки Apple (IDE).

Xcode предоставляет всё необходимое для разработки замечательных iPhone, iPad и iPodTouch приложений. Среди инструментов есть редактор кода, графический редактор пользовательского интерфейса и многие другие примочки, от настраиваемых сборок до управления репозиториями кода.использует единственное окно рабочего пространства — workplacewindow, которое содержит большую часть необходимых данных.

С Xcode переходим от написания кода к его отладке, разработке пользовательского интерфейса, и все это в пределах одного рабочего окна. SDK iOS постоянно расширяет комплект инструментов Xcode, добавляя компиляторы и фреймворки, необходимые для работы с iOS.

Чтобы начать, потребуется:

1) Бесплатно скачать последнюю версию Xcode. Открыть приложение AppStore на Mac, используя поиск, чтобы найти Xcode и кликнуть на кнопку Free, чтобы скачать Xcode. Загружая Xcode, загружаете и SDK iOS. (AppStore установлен на Mac OS X версии 10.7 и позже. Если установлена ранняя версия Mac OS X, то нужно будет ее обновить.)

Зарегистрироваться как разработчик Apple в Программе Разработчиков iOS. $99 в год. Для того, чтобы создавать и тестировать приложения в Simulator, регистрироваться необязательно. Однако, будет необходимо зарегистрироваться, чтобы тестировать приложения на iOS устройствах и распространять их. Регистрация предоставляет полный доступ к Центру Разработчика iOS и Порталу

Инструменты

Xcode предоставляет все инструменты для управления всеми этапами разработки — от создания приложения до его тестирования, оптимизации и отправке приложения в AppStore.

Язык

Objective-C — объектно-ориентированный язык для разработки всех iOS приложений. Язык Objective-C является надмножеством языка C, т. е. в своих проектах можно писать код как на C, так и на Objective-C. Несмотря на то, что для разработки можно использовать другие языки, не получится создать iOS приложение без использования Objective-C.(рис2)

Инструменты 1

Рис. 2 Objective-C

C — простой язык с синтаксисом и соглашениями, понятными для изучения, особенно если есть опыт работы с другими объектно-ориентированными языками как Java или C ++. Если вы C-программист, то вы отметите, что приложения намного легче проектировать и изменять, когда вы знакомы с объектно-ориентированным программированием и Objective-C.

Фреймворки

вызывать. Доступ к библиотеке фреймворка могут иметь несколько

приложений одновременно. (рис 3)

18 стр., 8821 слов

Технологический расчет комплекса ТО с разработкой операционно-технологической ...

... постов и рабочих мест, при этом шире использовать разработки рационализаторов и новаторов производства, а также лично участвовать в этой работе в период преддипломной практики и дипломного ... устаревших и несовершенных методов организации и управления производством, технологии проведения работ на более перспективные, используя опыт и достижения в этой области лучших предприятий своего города, ...

Фреймворки 1

Рис. 3 Фреймворк

Любое разрабатываемое приложение обращается к различным фреймворкам. Можно настроить использование фреймворка через программный интерфейс приложения — API. Прописанный в заголовочных файлах API определяет доступные объекты, классы, структуры данных и протоколы. Apple создает фреймворки, которые уже содержат функции, которые возможно реализовать. Использование фреймворков экономит время и усилия, а также дает гарантию того, что код будет эффективным и безопасным. Системные фреймворки — единственный способ получить доступ к аппаратной части устройства.

Шаблоны проекта

Шаблон проекта решает проблему разработки стандартного программного обеспечения. Шаблоны — это абстрактные проекты, они не являются кодом. Когда используете шаблон проекта, вы адаптируете этот шаблон в соответствии со своими определенными потребностями. (рис 4)

Шаблоны проекта 1

Рис. 4 Шаблон проекта

Независимо от того, какое приложение создается, необходимо знать базовые проекты, используемые во фреймворках. Понимание этих проектов поможет эффективнее использовать фреймворки и писать программы, которые будет легче изменять, расширять или же использовать повторно.

Проектирование интерфейса пользователя

Просто создать рабочее приложение недостаточно. Пользователи ожидают, что iOS приложения будут интерактивными, увлекательными и интуитивно понятными. Разрабатывая каждую часть своего приложения, от выбранных функций до реакции на жесты, вы должны думать о пользователе. (рис5)

Проектирование интерфейса пользователя 1

Рис. 5 Интерфейс пользователя

Несмотря на то, что многие ничего не знают о принципах проектирования пользовательских интерфейсов, все равно можно понять, когда приложение удовлетворяет требованиям, а когда нет.

Проект приложения

Прежде, чем начать писать строки кода, нужно принять несколько критических проектных решений. Максимально возможно определите цели и функции своего приложения. Выбрать вид модели данных, которая будет использовать приложение. Определится со стилем пользовательского интерфейса, к примеру, будет ли использоваться иерархия видов или же это будет служебное приложение. Будет ли оно универсальным, то есть, будет ли оно работать на iPad, iPhone и iPodtouch? Такие проектные решения помогут создать архитектуру приложения. (рис6)

Проект приложения 1

Рис. 6 Проект приложения

Но прежде, чем работать над архитектурой приложения, ознакомьтесь с фреймворками CocoaTouch. Ведь приложение существует не само по себе, оно зависит от создаваемых с помощью фреймворков объектов. Изучите объекты фреймворков, которые реализуют базовую структуру приложения и которые служат стандартными блоками.

Поиск информации

При разработке приложений будет нужен быстрый и легкий доступ к подробной технической информации. С Xcode эта информация будет всегда под рукой пока, пишется код.

Быстрая справка XCode выводит на экран краткую справочную информацию, позволяя не отрываться от работы над файлом. Кликая по символу, объекту интерфейса или настройке сборки проекта, чтобы получить больше информации. Для того чтобы получить справку о выполнении общих операций поводите курсором по рабочей области Xcode. Каждая статья справки предлагает пошаговые инструкции и видео или иллюстрацию с дальнейшими разъяснениями.

5 стр., 2111 слов

Разработка компилятора языка С

Задачей данной курсовой работы является проектирование, и реализация анализирующей части компилятора языка С++. Язык реализации С++. Базовые требования к реализации компилятора, на удовлетворение которых ... Исходный код программы, выбранной для разбора, представлен в Приложении А. Результат разбора кода лексическим анализатором представлен на рисунке 1. Рисунок 1 - Результат работы лексического ...

Оrganizer документов в Xcode содержит различные руководства по программированию, обучающие материалы, иллюстрированные примеры кода, руководства пользователя по инструментам разработчика и ссылки на ссылки подробную информацию о API фреймворках, — все эти материалы можно найти в Библиотеке разработчика iOS. В Organizer можно найти встроенную документацию разработчика Apple, доступную для поиска и просмотра. Кроме того, с Библиотекой разработчика iOS можно ознакомиться и в сети.

4.2 Xamarin

Xamarin — это фреймворк для кроссплатформенной разработки мобильных приложений (iOS, Android, WindowsPhone) с использованием языка C#.(рис 7)

Поиск информации 1

Рис. 7фреймворк для кроссплатформенной разработки

Фреймворк состоит из нескольких основных частей:

  • Xamarin.IOS — библиотека классов для C#, предоставляющая разработчику доступ к iOS SDK;
  • Xamarin.android — библиотека классов для C#, предоставляющая разработчику доступ к Android SDK;
  • Компиляторы для iOS и Android;
  • IDE Xamarin Studio;
  • Плагин для Visual Studio.

Некоторое время назад достаточно широкую известность получили ряд фреймворков (например Phone Gap), которые предлагают разработку кроссплатформенных мобильных приложений на HTML5 с использованием JavaScript. Идея заключается в том, что приложение разрабатывается как обычный сайт для мобильных устройств с использованием соответствующихбиблиотек, например, JqueryMobile. Затем все это упаковывается в некий контейнер, который для пользователя выглядит как нативное приложение. Минусы этих фреймворков:

Не имеете доступа к нативным элементам UI. То есть даже если вы хотите использовать стандартную кнопку «Назад» для iPhone, вы должны ее нарисовать и сверстать.

Урезанный и обобщенный API для работы с платформой.

Такое приложение физически запускается внутри браузера телефона (точнее внутри контроля WebView).(низкая производительность).основан на open-source реализации платформы .NET -Mono. Эта реализация включает в себя собственный компилятор C#, среду выполнения, а так же основные .NET библиотеки. Цель проекта — позволить запускать программы, написанные на C#, на операционных системах, отличных от Windows-Unix-системах, Mac OS и других. Важно, что разработкой Xamarin занимаются те же люди, что и разработкой Mono. (рис 8)

Поиск информации 2

Рис. 8Xamarin

С точки зрения исполнения приложений между iOS и Android есть одно ключевое различие — способ их предварительной компиляции. Как известно, для выполнения приложений в Android используется виртуальная Java-машина Dalvik. Нативные приложения, которые пишутся на Java, компилируются в некий промежуточный байт-код, который интерпретируется Dalvik`ом в команды процессора в момент исполнения программы(т.е. аналогично тому, как работает CLRв .NET).

17 стр., 8089 слов

Разработка информационного Интернет-портала

... портала и полноценной работы Интернет-магазина; разработать сервисы; провести отладку; провести оценку эффективности принятых решений, и реализованного портала. 1. Описание предметной области информационного портала 1.1 Анализ существующих решений Интернет-портал ... условий и приложений к договору, в том числе позволяет сторонам ускорить обмен документами и не зависеть от работы почты, курьерских, ...

Это так называемая Just-in-time компиляция (компиляция на лету).

В iOS используется другая модель компиляции -Ahead-of-Time (компиляция перед исполнением).

Xamarin учитывает это различие, предоставляя отдельные компиляторы для каждой из этих платформ, которые позволяют на выходе получать настоящие, нативные приложения, которые выполняются вне контекста браузера и могут использовать все аппаратные и программные ресурсы платформы. (рис9)

Поиск информации 3

Рис. 9 Компиляция

Для iOS ситуация простая — никакой виртуальной машины нет и программный код должен быть просто заранее скомпилирован в машинный. Для этой цели используется AOT компилятор Mono.

Для Android интереснее. При компиляции приложения происходит перевод кода на C# в промежуточный байт-код, понятный виртуальной машине Mono и сама эта виртуальная машина также добавляется в упакованное приложение. И Mono и Dalvik написаны на Си и работают поверх ядра Linux. При запуске приложения на Android обе виртуальные машины начинают работать бок о бок и обмениваются данными через специальный механизм wrapper`.

О библиотеках на примере Xamarin.iOS (Monotouch).

Библиотека классов Monotouch.dll предоставляет доступ ко всем возможностям iOS SDK. Для разработчика — это просто набор C#-классов с хорошей аннотацией. Внутри эти классы используют разработанные инженерами Xamarin механизмы биндинга на нативные классы и методы. Важно, что этот же механизм можно использовать для биндинга любых библиотек, написанных на objective-c. Большинство классов и методов называются так же, как в оригинальном iOS SDK, хотя бывают исключения (в этом случае приходится использовать поиск в документации Xamarin по оригинальному названию, т.к. оно фигурирует в атрибутах биндинга).

В классах активно используется механизм C# event`ов, что позволяет писать красивый и компактный код обработчиков с использованием лямбда-выражений:

  • button.TouchUpInside += (s, o) =>
  • {.Text = «Hello!»;

};

  • Да и в целом код, написанный, на C# выглядит гораздо читабельней и приятней. Посмотрите разницу на примере кода, создающего строку с атрибутами:

О библиотеках на примере  1

Для асинхронной разработки Xamarin предоставляет возможность использовать как классы из пространства имен System.Threading.Thread и System.Threading.ThreadPool, так и полный спектр возможностей, предоставляемых TaskParallelLibrary.

Ограничения

Ограничения в Xamarin.iOS связаны в основном с тем, что в iOS, как было сказано выше, в отличие от .NET и Mono нет виртуальной машины. Поэтому возникают трудности с поддержкой Generic. Причина ясна — на компилятор ложится задача проанализировать код и определить все возможные конкретизации в том или ином классе и методе. Отсюда возникают такие ограничения:

  • Не рекомендуется использовать VirtualGeneric методы, т.к компилятор не всесилен и может не учесть все возможные варианты использования;
  • Нельзя создавать Generic-наследников от класса NSObject, который является базовым в иерархии Objective-C. Достаточно серьезное ограничение, которое может некоторым образом испортить вашу стройную и красивую архитектуру.

Другие ограничения, например, отсутствие поддержки динамической генерации кода.

Разработка UI

Для каждой платформы Xamarin предоставляет возможность использовать нативные средства разработки UI и нативные элементы пользовательского интерфейса. Для Android создание UI может происходить непосредственно в коде или же при помощи декларативного подхода с описанием интерфейса в XML. Для iOS это также либо код, либо использование нативных средств проектирования интерфейса — отдельные xib-файлы или же один большой Storyboard. Редактирование этих файлов происходит в привычной для iOS-разработчика среде XCode.

Переносимость кода

Переносимость кода 1

Рис. 10 Перенос кода

На самом деле ситуация обстоит следующим образом. Для каждой из платформы потребуется реализовать собственный слой UI. Т.е код, который отвечает за внешний вид приложения, придется написать для каждой платформы отдельно. Это цена за возможность использования нативных механизмов работы с UI. Если разбивать приложение на слои, то получается такая схема:

  • DataLayer (DL) — Хранилище данных, например, база SqlLite или xml-файлы;
  • Data Access Layer (DAL) — Обертка над хранилищем для осуществления CRUD-операций;
  • Business Layer (BL) — Слой, содержащий бизнес-логику приложения;Access Layer (SAL) — Слой, отвечающий за взаимодействие с удаленными сервисами (Rest, Json, WCF);
  • Application Layer (AL) — Слой, содержащий платформозависимый код, другими словами, это код, который зависит от библиотек monotouch.dll или monodroid.dll;
  • UserInter face Layer (UI) — Слой пользовательского интерфейса.

Кроссплатформенными являются все слои, расположенные выше ApplicationLayer. Доля переносимого кода достаточно сильно зависит от самого приложения, но, на мой взгляд, она вряд ли может превысить 50-60%. Инженеры Xamarin это понимают, поэтому стремятся к увеличению этой доли. В качестве достижений в решении этой проблемы можно рассматривать библиотеку Xamarin.Mobile. Она предоставляет единый для различных платформ API для работы с камерой, контактами и гео-локацией. Но использование этой библиотеки никак не ограничивает вас в применении платформозависимого API, например, с помощью механизма делегатов.

Сторонние компоненты, Документация и комьюнити

Xamarin имеет отличную документацию, содержащую подробные руководства, сниппеты, а также внушительную базу примеров. Документация непосредственно по всем классам библиотек Monotouch и Monodroid являются частью общей документации Mono. Но, к сожалению, этого все равно недостаточно, чтобы покрыть весь список вопросов, которые могут возникать в процессе разработки. У Xamarin существует комьюнити разработчиков, которое сконцентрировано на официальном форуме и на StackOverlow. Активностью и инициативностью людей в комьюнити похвастаться не могу. В этом плане неоценимую помощь оказала приватная тех. поддержка с инженерами по электронной почте, доступная в business-лицензии. Отвечают, как правило, в течение нескольких часов и не стандартными отписками «попробуйте выключить и включить», а действительно разбираются в проблеме и помогают ее решить. Следует понимать, что база вопросов и ответов, накопленная для нативной разработки гораздо шире, чем для Xamarin, поэтому, как бы вы ни хотели, придется разобраться в специфическом синтаксисе objective-c (c Java проблем быть не должно), чтобы понимать примеры кода на том же StackOverflow. Кроме того, это откроет доступ к прочтению и пониманию официальной документации для платформы, что на определенном этапе может стать очень важно. С другой стороны, в этом есть и положительный момент: получив такой базис, будет проще перейти к нативной разработке при необходимости.

Среда разработки

Разработчики Xamarin в качестве среды разработки предлагают использовать либо собственнуюIDE -Xamarin Studio, либо Visual Studio (в business-лицензии, обэтомниже).

XamarinStudio

XamarinStudio — кроссплатформенная IDE, которая работает как на Mac OS X, так и на Windows. На вид эта она выглядит очень простой, однако за внешне простой скрывается достаточно мощный инструмент, который включил в себя множество функций, привычных нам в VisualStudio и Resharper:

  • Приятная подсветка синтаксиса;
  • Автодополнение кода (включая возможность одновременного импорта namespaces);
  • Удобный универсальный поиск по названиям файлов, типам, членам классов и т.п;

Развитые возможности навигации по проекту: Быстрый переход к

описанию класса, переход к базовому классу, список мест использования класса и т.д.;

  • Различные механизмы рефакторинга и быстрая подсказка (как alt+Enter в Resharper);
  • Достаточно развитые механизмы дебага, включая слежение, просмотр текущего значения переменной при наведении, визуализацию потоков и аналог Immediatewindow в VS;
  • Встроенная интеграция с системами контроля версий: SVN, Git и TFS (для TFS, правда, нужны сторонние утилиты);

Горячие клавиши (включая copy-paste) работают только в английской раскладке

Периодически, при попытке поставить breakpoint студия виснет. Несмотря на наличие механизма автосохранения.

При использовании встроенной интеграции с SVN добавление новых файлов в проект не отслеживается автоматически. Т.е. изменение в файле .csproj зачекинятся, а сами файлы — нет. По каждому файлу нужно кликать правой кнопкой и добавлять его в репозиторий.

Иногда проект перестает компилироваться. Лечится перезапуском студии.

VisualStudio

Xamarin предлагает возможность вести разработку в VisualStudio после установки специального плагина, который доступен в business-лицензии (на момент выхода статьи — 999$), но есть месяц триала. Плюсы очевидны: вы становитесь разработчиком мобильных приложений, не меняя места дислокации, и можете использовать всю тяжелую артиллерию в лице Resharper и других ваших любимых плагинов. После установки плагина для VisualStudio потребуется настроить соединение сMac, которое будет использовано при запуске проекта на выполнение. Т.е. после запуска, приложение автоматически пересылается на Mac, где компилируется и загружается либо на симулятор либо на устройство, при этом сам процесс отладки, расстановка брейкпоинтов и т.д. будет происходить в VisualStudio. Вариантов работы в VisualStudio несколько. Либо вы используется виртуальную машину внутри Mac (например, Parallels), куда ставите Windows и VisualStudio. Либо используете две разные физические машины, при этом использовать один Mac для нескольких PC-разработчиков затруднительно, т.к. отладка требует манипуляций с симулятором. И последний вариант — использовать виртуальную машину с Mac OS X (так называемый hackintosh).

Вполне себе жизнеспособный вариант, хотя и есть некоторые ограничения. Например, в Xcode придется перемещаться по Storyboard только с использованием полос прокрутки, т.к. windows-мышь не очень похожа на настоящую мышь от Mac со всеми вытекающими.

С отладкой в VisualStudio периодически возникали проблемы. Самая заметная — это то, что при удаленной сборке приложения, процесс отладки мог отвалиться по таймауту. Хотя, опять же, стоит отдать должное разработчикам — они исправляют ошибки достаточно интенсивно. Хотя и стоит заметить, что на текущий момент, времени между запуском приложения и появлением его на экране симулятора при использовании VisualStudio требуется несколько больше, чем при использовании XamarinStudio на Mac.

Лицензии имеет следующие типы лицензий:

  • Starter — Бесплатно. Рассчитан скорее для ознакомления, т.к. имеет ограничение на размер приложения (по ощущениям очень не большой, т.к. не компилировались даже некоторые sample-проекты) и на использование сторонних компонентов;
  • Indie — 299$ на одно рабочее место. Снимается ограничение на размер приложения. Разработка возможна только в XamarinStudio;
  • Business — 999$ на одно рабочее место. Появляется возможность разработки в VisualStudio и приватная тех. поддержка от инженеров Xamarin;

— Enterprise -1899$ на одно рабочее место. В рамках этой лицензии предоставляется возможность получения Hotfixes, а так же возможность отправить инженерам проект с исходным кодом и сказать «Что-то у меня не получается поменять ширину ячейки в таблице, помогите!». Плюс ряд не слишком полезных, на мой взгляд, опций.

Обращаю внимание, что для каждой платформы (iOS, Android) нужна отдельная лицензия. Несмотря на то, что у Business-лицензии написано «perdeveloper» на текущий момент каждая лицензия может быть активирована на 4-ых рабочих станциях и эти рабочие станции можно менять. Т.е. гипотетически одну лицензию могут использовать два разработчика при том, что каждый из них будет использовать для разработки VisualStudio.

AppArchitect

Данный сервис позволит вам с легкостью (без писания кода) создать приложение для iOS.

Вам просто нужно, как в конструкторе, собрать свое приложение, протестировать его и отправить на одобрение в AppStore (без одобрения приложение не может появиться в AppStore).

После того, как сотрудники AppStore одобрят приложение, оно станет доступным в магазине.

Также данная система позволяет, с помощью специального, приложения протестировать и опробовать созданное вами приложение. Для этого есть специальный инструмент. (рис 11)

Среда разработки 1

Рис. 11 Логотип

2.Практическая Часть, .1 Требования к мобильному приложению

Мобильное приложение «Угреша» должно выполнять следующие функции:

  • Просмотр расписания колледжа;
  • Электронный портал;
  • Видео, канал на Youtube, фотографии;
  • Информация о колледже и сотрудниках;
  • синхронизация информации через Интернет;
  • Новости о коллеже.

Пользователь представляет собой человека, взаимодействующего с приложением на мобильном устройстве. В частном случае пользователем является преподаватель университета.

2 Подготовка среды разработки

Для разработки приложений для ОС Ios требуется зарегистрироваться в AppArchitect. Данный сервис позволит вам с легкостью (без писания кода) создать приложение для iOS.

Также данная система позволяет, с помощью специального, приложения протестировать и опробовать созданное вами приложение. Для этого есть специальный инструмент.

Основными функциями подсистемы программно-методического комплекса является:

  • Установка всех необходимых компонентов для реализации поставленной задачи;
  • Поэтапная настройка среды разработки;
  • Разработка графического контента приложения;
  • Разработка полноценного приложения в выбранной среде разработки;
  • Тестирование приложения с помощью различных средств;
  • Пример публикации приложения в магазине мобильных приложений.

Регистрация в AppArchitect

Перед тем как начать использовать AppArchitect, необходимо в нем зарегистрироваться.

Перейти на сайт AppArchitect.ru и нажать большую оранжевую кнопку с надписью «GetStarted».(рис12)

Регистрация в  1

Рис. 12 Регистрация

В открывшемся окне заполните поля «E-Mail» и «Password», нажмите кнопку «Create». После этого аккаунт будет создан, можно выполнить вход в него.(рис 13)

Регистрация в  2

Рис. 13 Форма регистрации

Теперь можно переходить к созданию приложения для Apple устройства.

Создание приложения в AppArchitect

В аккаунте нажмите кнопку «CreateNewApp» для того, чтобы создать новое приложение.(рис 14)

Создание приложения в  1

Рис. 14 создание приложения

Далее укажите название нового приложения и выберите устройство, для которого это приложение создается, нажмите кнопку «Next».(рис15)

Создание приложения в  2

Рис. 15 Выбор устройства

При создание мобильного приложения нам предлагают выбор тематики или пустой холст.(рис 16)

Рис. 16 Выбор темы

В создаваемом приложении будет семь вкладок: новости, видео, фото, социальные сети, расписание, электронный портал, о нас.

Работа функций приложений:

  • Новости — на этой вкладке представлены новости колледжа;
  • Видео — на этой вкладке представлено видео с YouTube;
  • Социальные сети — на этой вкладке представлены сайты(Instagram, twitter, vkontakte);
  • Расписание — Электронное расписание учащихся групп;
  • О нас — в этой вкладке представлено приветственное слово директора, общие сидения, администрация, контактная информация, мы на карте.

Описание интерфейса

1 — Выбор иконки и название программы.

  • Панель инструментов — с помощью данной панели можно копировать, вставлять, удалять различные элементы.
  • Панель публикации проекта.
  • Выбор телефона, под которое будет делаться приложение.
  • Панель создания проекта — делиться на три вкладки:
  • собственно, это и есть наши вкладки;
  • библиотека элементов, из которых будем собирать наше приложение;
  • панель функций элементов приложения, с помощью данной панели можно задавать различные функции нашим элементам приложения.(рис 17)

Описание интерфейса 1

Рис. 17 Интерфейс среды разработки

Панель выбор иконки и название программы — с помощью данной панели можно поставить картинки на иконку приложения и на главный экран входа. (рис 18)

Описание интерфейса 2

Рис. 18 Панель выбора иконки и названия приложения

Создание вкладок

Для создания вкладок переходим в панели управления проектом (3) на вкладку Screens и с помощью кнопки «NewScreen» создаем необходимое количество вкладок, в моем случае — пять.(рис 19)

Создание вкладок 1

Рис. 19 Создание вкладки

Что бы переименовать вкладку, нужно кликнуть по первой вкладке, из раскрывшегося списка выбираем пункт «Rename», пишем название вкладки, в моем случае — главная. Нажимаем кнопку «Apply».(рис 20)

Создание вкладок 2

Рис. 20 Переименование вкладки

Редактирование верхнего бара

Чтобы отредактировать верхний бар надо нажать на него и перейти во вкладку “Properties”. В данном окне будет предложен список редактирования:

Текст

Стиль текста

Размер шрифта (max 24),

Фон

Возможность вставить свою текстуру

Размер текстуры

Кнопка с ссылкой на выбранный раздел (рис 21)

Редактирование верхнего бара 1

Рис. 21 Редактирование

Оформление главной страницы.

На главной странице можно расположить:

Картинки

Фото галерею

Карты и геолакацию

Подкастное меню

Rss новостную ленту

Web — станицу

Видео ролик с YouTube

Рассказать друзьям в Twitterили Facebook

Ссылки на кнопки и разного вида текст (рис 22)

Оформление главной страницы  1

Рис. 22 Оформление

На главной странице мы размещаем картинку и добавляем логотип колледжа “Угреша” (рис 23)

Оформление главной страницы  2