Программировать на какие смарфоны

?

Как запрограммировать мобильное устройство? Какие рамки облегчат задачу? Какой язык программирования использовать? Можно ли сделать приложение портативным? Какую операционную систему выбрать? Мы постараемся ответить на все эти вопросы .

Количество пользователей смартфонов и планшетов, вращающих приложения, выполняемые третьими лицами, уже больше, чем количество настольных компьютеров. Так что очевидно, что программист теперь должен отдавать предпочтение этому рынку.
Не стоит рассчитывать на совместимость с настольными системами (даже если эмуляторы предоставляются для разработки под Windows, Mac, Linux). Интерфейс, экраны разные и если только ты не ограничиваешься приложениями в браузере, то нужно переосмыслить приложение, и планировать использовать разные API.

Операционные системы мобильных устройств и их программирование

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

iOS

Система iPhone работает преимущественно с приложениями на языке C или Objective C, или в HTML 5.

Запретив использование сторонних фреймворков (например, Flash) для создания приложения, которое принято в AppStore, 9 сентября 2010 года Apple изменила политику и отказалась от каких-либо ограничений на инструменты, которые можно использовать для создания приложений для iOS.
В пункте 3.3.1, чтобы приложение было включено в App Store, говорилось, что программное обеспечение должно быть написано на Objective C, C++ или JavaScript и без промежуточного надуровня с API iOS. Теперь она часть истории.

Статистика показывает, что 80% разработчиков под iOS не имеют достаточного дохода, чтобы поддержать бизнес, и 60% - чтобы компенсировать затраты на разработку. Согласно недавней статье в Register, в AppStore 700 000 приложений, но 25 получают 50% выручки и приходят от разработчиков игр, таких как Disney, Zynga, EA!

Cocoa - инструмент для разработки Apple и вариаций языка C, наряду с фреймворком UIKit.

Android

Система Google теперь имеет очень широкую установленную базу, равную iPhone в США и, следовательно, является одним из двух привилегированных рынков для разработчиков.
Android SDK предоставляет API для создания приложений. В декабре 2015 года OpenJDK заменила стандартный Java API с реализацией на Google. В комплект входит мобильный эмулятор Android для тестирования приложения под Windows, Mac, Linux.
Плагин ADT для Eclipse добавляет к нему IDE.
NDK, N для нативного, позволяет добавлять нативный код, поэтому написанный на C, или другой компилируемый бинарный язык .
Первоначальный язык программирования - Java, но благодаря SL4A можно использовать другой язык, например C # с Xamarin.
Кордова широко используется для создания Android-приложений в JavaScript.
Виртуальную машину LLVM также можно использовать, в частности, с помощью компилятора Scsi (начиная с версии 4.3).

Тизен

Это преемник Meego, поддерживаемый Intel, Samsung, NEC и многими другими компаниями, в качестве интерфейса он использует HTML 5, а в качестве бэкенда - Linux. Название, вероятно, является аббревиатурой «гражданин», гражданин по-английски .
Он также стал преемником Limo, инициативы Linux Foundation по созданию мобильной системы на базе Linux .
Это альтернатива Windows 8, которая позволит запускать на планшетах приложения для Linux и поддерживать Qt и GTK. Если Microsoft собирается загрузить 30% приложений под Metro, Tizen наверняка заинтересует издателей. Приложения, разработанные в HTML 5 и WAC, будут работать на всех устройствах.
Его доступность с SDK запланирована на первый квартал 2012 года.

Firefox OS

Android sur mobile Revolution
Android на мобильной революции

Платформа Mozilla, оснащающая свои первые модели в 2013 году, является самой открытой, поскольку использует только веб-стандарты. Поэтому программирование осуществляется в JavaScript и HTML с использованием API для использования аппаратных компонентов.
Для бэкенда он использует Linux и Gecko, а весь HTML 5 для интерфейса имеет преимущества:
- без фрагментации.
- Совместимость со всеми устройствами.
- Бесплатный, наоборот, Android, так как Microsoft заставляет платить за него патентные права.
- Приложения работают в HTML и JavaScript как системный интерфейс dy.
Некоторые устройства, такие как Revolution, позволяют выбирать между Android и Firefox OS при запуске, что обеспечивает большую долговечность, так как обновления первого ограничены, а не во втором.
Firefox OS была заброшена 9 декабря 2015 года.

Windows Phone

В отличие от iPhone, система Microsoft отдает предпочтение написанию приложений на языке C #, но можно использовать и язык C++. Приложения работают на облегченной версии .NET .
Интерфейс WP 7 может быть построен с помощью Silverlight или XNA - игровой фреймворк.
WP 9 может быть несовместимым с WP 8 из-за необходимой унификации с Windows.

Blackberry OS

ОС 6 бывшей RIM (название которой становится Blackberry) поддерживает многоточечность. Программирование осуществляется на Java или с помощью SDK для веб-приложений.
Qnx используется на планшете и позволяет запускать Android-приложения при условии, что они принимаются на платформе дистрибутива App World.
Blackberry 10 основан на Qnx и является его преемником, это единая платформа для планшетов и смарфонов. В 2016 году Blackberry обратилась к Android за новыми моделями и BB10 систему можно считать закопанной.

WebOS

В основе Linux лежит большинство инструментов для Linux, включая SDL для игр. WebOS поддерживает HTML 5, JavaScript, CSS. Он многозадачен. Он включает в себя Node.js, что позволяет создавать действительно совместимые приложения, работающие даже на рабочем столе.
PDK позволяет вводить код C или C++ в приложения. SDK включает симулятор для тестирования приложений под управлением Windows или Linux, а Enyo - фреймворк Ajax, включающий виджеты. Можно добавить собственные виджеты. Enyo заменила Mojo, на более быстрый и HTML-совместимый фреймворк 5, пригодный для планшетов.

MeeGo/Sailfish

Система Meego на Linux (и размещенная в Linux Fundation) стала результатом слияния Моблина с Intel и Maemo с Nokia.
Многие промышленники присоединились к консорциуму Meego - системе для мобильных устройств, планшетов и нетбуков. Общий код, который может использоваться для всех этих устройств.
Заброшенный Nokia, Meego заменяется Tizen, поддерживаемым Intel и Samsung, использующими HTML 5. Оригинальная система продолжается с независимой компанией Jolla под названием Sailfish OS. Jolla - компания, основанная уволенными в массовом порядке экс-сотрудниками. В июле 2012 года он нашел первого производителя. В августе 2013 года у него достаточно предзаказа для запуска, в отличие от Ubuntu Mobile. По данным тестировщиков первой модели, распространенной в ноябре 2013 года, Sailfish является самым интуитивно понятным из всех интерфейсов для мобильных устройств.

Sailfish использует фреймворк Qt и его можно запрограммировать с помощью редактора Qt Creator. MeeGo UI Toolkit - это слой, добавленный к Qt. Его дополняют Handheld UX для мобильных устройств и Neetbook UX для планшетов и нетбуков.
Язык программирования - C++.

Sailfish позволяет запускать Android-приложения.

Мауи

На базе Linux это смешанная система для настольных и мобильных ПК (каким стремится быть и Ubuntu), которая использует либо сенсорную, либо клавиатуру и мышь в зависимости от машины. Используя новейшие технологии, такие как Wayland, он особенно чувствителен.
Пока не стабильный, его можно использовать для замены устаревшей ОС на старом устройстве.
Когда Wayland заменит X, такая же универсальность станет возможна с любым дистрибутивом Linux.

Симбиан (в процессе оставления )

Symbian 3 - платформа с открытым исходным кодом. Для создания приложения можно загрузить пакет для разработки продуктов (PDK). ADT (Application Developent Kit) содержит инструменты для разработки приложения, работающего на Symbian.
Используемые языки - C++ с Carbide, Java ME с Eclipse Mobile или NetBeans Mobility, Python с PyS60, Ruby с Symbian Ruby, Flash с Flash Lite, виджеты с использованием HTML 5. Поддержка .NET не уверена.

С помощью Nokia Qt SDK можно разрабатывать и тестировать настольные приложения, которые будут работать на Symbian и Meego.

Symbian будет постепенно заменяться Windows Phone 7 и, несомненно, новой системой на базе Linux для дешевых моделей. Разработка Symbian была передана сторонней компании Accenture в июне 2011 года.

Универсальные платформы

Теперь их можно использовать на iPhone, пока приложения не загружают исполняемый код, как это может сделать Flash.

Титан

Интерфейс разработки для Android или локальных приложений. У него есть собственный SDK, интерфейс к системным API, который облегчает порт от одной платформы к другой.

Unity3D

Unity является платформой для разработки и Unity3D специализированной версией для игр. API может быть запрограммирован в JavaScript или C #.
Эти языки компилируются на родном языке (ARM) для мобильных устройств.
Те же приложения могут работать на браузере через плагин. Они также работают на Windows и Mac, на .NET.
В марте 2014 года Unity объявила о поддержке WebGL и Asm.js рядом с их плагином для браузера. Это позволяет выполнять приложения на любом устройстве.

Ксамарин

Бесплатно и с открытым исходным кодом с апреля 2016 года этот фреймворк C # включен в Visual Studio Community Edition и позволяет выполнять приложения для iOS, Android, Windows, Mac, Linux .

HTML 5

HTML 5 остается универсальной платформой, работающей на всех мобильных устройствах без какой-либо адаптации кода, но с ограничениями.
Nokia предлагает инструмент для разработки портативных приложений без нативного кода.
В AppStore iPhone появилась облегченная версия браузера Opera Mini, посвященная мобильным. Однако кажется, что этот браузер не является платформой веб-приложений. Действительно, Opera Mini 5, поддерживая SVG и CSS 3, не имеет поддержки важнейших компонентов: HTML-форм 5, Ajax.
Firefox для Android узнает, когда у него 100% HTML 5. Точно так же родной браузер.

Собственная реальность

Предоставленная Facebook в 2015 году, эта альтернатива HTML 5 (или Swift, Java) позволяет создавать нативные мобильные приложения с фреймворком React и JavaScript. 90% кода общее для iOS и Android .
Код приложения представляет собой сочетание HTML и JavaScript.
Платформу используют Facebook, Instagram и несколько крупных сайтов.

Флаттер

Эта платформа, основанная на языке Dart, теперь может использоваться в 2017 году, и авторы уже отказываются от своей родной платформы iOS или Android для нее, чтобы воспользоваться возможностями языка.
Поддерживает аппаратный дизайн, распознавание жестов, интерактивные виджеты и т. Д.

C++ для мобильных устройств

Microsoft предлагает делать мобильные приложения, написанные на C++, из Visual Studio. Она может работать на iOS, Android, Windows.

JVM: JUniversal

Странно предложенная Microsoft в феврале 2015 года платформа JUniversal позволяет разрабатывать программное обеспечение на Java, которое будет преобразовано в язык, соответствующий мобильному, Android, Windows (C #) или iOS (Objective C). На самом деле инструмент был разработан сотрудниками Nokia, переданными Microsoft вместе с приобретением. Но пользовательский интерфейс должен быть написан на родном языке .
RoboVM была альтернативой, которая генерировала бы бинарный код из Java, но после покупки Xamarin Microsoft разработка была прекращена..