Прошлое, настоящее и будущее разработки на Андроид

ap1

Имея более чем 80 процентов на рынке Андроид на сегодня является доминирующей операционной системой. Андроид управляет бесчисленным множеством моделей смартфонов и планшетов, а также множеством других устройств.

Несколько лет назад, когда Miley Cyrus все еще пел музыку кантри, Justin Bieber носил свою знаменитую стрижку “Bieber”, а Malcolm все еще играл в AC/DC, разработка на Андроид была довольно сложной. Разработчики имели множество проблем с разработкой даже простых приложений для операционной системы Андроид.

Почему? Хорошо, мои дорогие читатели, проблемы были везде:

  • Глючная IDE – вы пробовали когда-нибудь ремонтировать вашу машину совком или знакомиться с девушками, разъезжая на 40-летнем автомобиле вашего дедушки? В мире Андроид у нас был официальный IDE для разработки– Eclipse, который имел тонну проблем и мог свести вас с ума за 10 минут. ADT (Android Development Tools) плагин для Eclipse был просто глючным, медленным и не дружественным для более-менее сложных проектов. Мы быстро уставали от него и просили о чуде.
  • Фрагментация версий операционной системы – например, версия Gingerbread (имбирный пряник) (2.3.7) занимала небольшую долю рынка, примерно 15-20 процентов от всех версий Андроид. Как вы уже знаете, в дальнейшем Андроид подвергся полному пересмотру в версии 4.0 (Ice Cream Sandwich) – мы получили новые элементы пользовательского интерфейса, новое API для устройств, новые разрешения экранов. В результате мы должны были более тщательно программировать и оптимизировать наши приложения чтобы они подходили как для новых, так и для древних версий Андроид. Все это значительно влияло на процесс разработки и приводило к увеличению времени разработки и появлению большего количества багов в приложениях.
  • Медленные эмуляторы. Мы нуждаемся в тестировании наших приложений на различных версиях операционной системы и различных разрешениях экрана, поэтому мы должны купить по крайней мере 20 различных устройств. Звучит как сумасшествие? Хорошо, мы ведь можем использовать эмуляторы. Но вы когда-нибудь пытались использовать стандартный эмулятор Андроид? Это так мучительно медленно, что вы скоро будете ловить себя над подсчетом автомобилей, припаркованных перед вашим офисом, пока ваше приложение будет развертываться на ваш эмулятор.
  • Пользовательский интерфейс в Андроид очень скучный. Если бы богохульствуете и смотрите на IOS приложения, то вы увидите, что они полны жизни и цвета. Все анимировано, трансформируется, двигается слева направо, справа на лево и так далее… Наши же приложения были статичными и если бы мы захотели обогатить наше взаимодействие с пользователем, то старая версия Gingerbread очень скоро убила бы все наши надежды и желания.

Но так было пока не наступил 2013 год!

Начинаем все с нуля

Все изменилось в прошлом году и эти изменения случились так быстро, что мы спросили себя “Когда же это случилось?”. Но что более важно, фактически появилась целая экосистема, Андроид подвергся многим улучшениям, мы получили новые устройства (умные часы), новый софт (Gradle, Android Studio), новую операционную систему (Android 5.0 Lollipop).

Каждый внес свой вклад – Google, производители устройств, разработчики. Каждый из них имел одну и ту же цель и задавал себе вопрос “Хорошо, теперь у нас есть стабильная операционная система, множество приложений с миллиардами пользователей, как же мы сможем в будущем упрощать и улучшать Андроид? Как мы можем сделать процесс разработки лучше?” Это возможно там, где принципы отрытого доступа и открытых исходных кодов показали свой истинный потенциал и где каждый может сделать свое изменение, улучшение или что-нибудь новое.

Трудно суммировать все изменения, но я составил список вещей, которые являются (по моему мнению), самыми важными:

1. Android Studio

Android Studio для нас является любимым средством разработки под Андроид и эта IDE наконец-то получила стабильную версию 1.0. Я не буду расписывать почему эта IDE настолько хороша, просто отмечу, что Eclipse плагин получил от Google официальный статус устаревшего продукта и я настоятельно рекомендую вам мигрировать всем вашим приложениям под Android Studio.

Да здравствует король!

ap2

2. Gradle

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

Из-за этого Gradle стал своего рода инструментом “администрирования”, с помощью которого мы определяем и управляем настройками нашего проекта. Gradle – также одна из главных причин для растущего числа библиотек автоматизации тестирования приложений и автоматизации сборки серверов, которые принесли процесс непрерывной интеграции (CI) в процесс разработки приложений для Андроид. Но не все так прекрасно, Gradle также сильно критикуют за его время выполнения. Он может быть реально медленным на сложных проектах, но мы надеемся, что эта проблема будет устранена в старших версиях и релизах.

3. Lollipop

Google сказал нам, что Lollipop стал самым значительным улучшением операционной системы Андроид во все времена и они правы.

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

4. Снаружи Lollipop – Material Design

Много уже было сказано о новом ярком пользовательском интерфейсе, названным Material Design. Эта одна из новых наиболее важных инноваций в ОС Андроид за последние несколько лет, которая полностью изменила стиль наших приложений. Что же мне более всего нравится в произведенных изменениях принципов пользовательского взаимодействия? Здесь важно все. Не существует каких либо маленьких изменений, которые могли бы быть проигнорированы. Мы отвечаем каждому пользователю взаимодействием, кликом, касанием и т.п. , потому что Google сказал нам, что движения обеспечивают смысл в пользовательском взаимодействии. Мы должны проявить смелость, принять новые яркие цвета, использовать анимацию на каждом шагу, большие шрифты, но проще сказать, что мы добавили жизни в наши приложения.

Итак, Material Design это полностью приспособленная для Андроид и адаптированная к разным размерам экранов экосистема. Вот почему наши приложения имею подобный но не одинаковый вид на разных платформах.

ap3

5. Внутри Lollipop – Искусство

Все говорят о дизайне, компонентах пользовательского интерфейса, анимации, цветах… Но мы же разработчики и нам интересно, что находится под капотом. И, господа, двигатель великолепен – совершенно новая система времени выполнения, названная ART.

Для справки – ART это не новая система, она была представлена как вторая система времени выполнения в версии Андроид Kitkat. Но с выходом Lollipop она стала основной системой и полностью заменила Dalvik. ART превосходна из-за нескольких особенностей, но я упомяну только о двух из них:

  • ART использует AOT (ahead-of-time) компиляцию, что означает компиляцию в промежуточный язык (Dalvik байткод) в зависимый от системы код. В результате мы получаем меньшее время выполнения наших приложений, меньшее использование процессора и меньший расход аккумулятора.
  • Автоматическая поддержка множества DEX файлов. Dalvik DEX файлы имеют один основной недостаток – они могут содержать только 65356 методов. Мы должны были организовывать наши приложения таким образом, чтобы количество методов не превышало это ограничение. Хотя это количество методов может показаться достаточно большим, но если принять во внимание сервисы от Google Play (которые используются почти в каждом приложении), то вы легко могли превысить этот лимит. ART организует ваше приложение в множественные DEX файлы, которые упаковываются вместе в один APK файл.

5. Улучшенное качество смартфонов

Смартфоны все еще являются основными устройствами для Андроид. В течение долгого времени мы имели проблемы с их качеством. Старые Андроид устройства были более уродливыми и медленными чем старые IOS айфоны. Это особенно было заметно в дешевых устройствах во множестве произведенными в Китае.

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

Мой личный выбор – Motorola Mobility (на время написания статьи является подразделением китайской компании Lenovo) с их прекрасной линейкой смартфонов Moto X, Moto G и Moto E, которые действительно имеют реально хорошее соотношение цена/качество.

Итак, сейчас команда Google работает над модульными смартфонами. Проект Ara ставит своей целью шокировать мир Андроид, и, если все пойдет хорошо, вероятно так и будет.

ap4

Модули проекта Ara.

Что же дальше?

Отказ от Java

После того, как мы наконец решили основные наши проблемы с IDE и версиями операционной системы мы можем переключить наш фокус на другие проблемы Андроид.

По моему мнению, наиболее важная из корневых проблем в Андроид это Java. Извините, Java Harmony. Которая базируется на Java 7. Или Java 6. Но дело не в Java. Я свято верю, что Java великолепный язык программирования, ноя также думаю, что пришло время мыслить нестандартно. Мы должны начинать смотреть на другие языки программирования, которые должны будут заменить Java в качестве главного языка программирования для Андроид разработки.

Просто посмотрите на нашего главного конкурента – Apple. Они уже представили полностью новый язык программирования Swift, который комбинирует лучшие особенности других языков (таких как Python, Ruby или C#). Нам уже требуется значительно больше времени, чем разработчикам iOS для того, чтобы разработать то же самое приложение, а теперь мы будем еще медленнее.

Вот почему мы нуждаемся в чем-то новом. У нас уже есть несколько идей о том, какой язык должен заменить Java. Мое внимание обращено на Groovy. Его синтаксис вполне похож на Java (фактически, он основан на Java) и мы уже имеем некоторые работающие прототипы.

К тому же не надо забывать, что это основной язык для Gradle, так почему бы не использовать его для разработки под Андроид? Или может быть Scala (которая быстро завоевывает все больше новых пользователей) или Kotlin?

Улучшение управлением базами данных

Я хотел бы отметить еще одну проблему – API управления базами данных. Если вы однажды совершите богохульство и посмотрите на вашего главного конкурента IOS (Core Data для большей точности) то вы увидите что у них есть реально классные методы и визуальные интерфейсы для создания объектов баз данных, CRUD методы, слушатели, срабатывающие при изменениях в базе данных. Но если вы посмотрите на стандартное API Андроид, то мы все еще недалеко ушли от написания SQL команд, которые значительно влияют на процесс разработки.

Отладка ошибок в SQL командах не является простым делом, мы тратим на это время и у нас нет визуальных инструментов для просмотра данных в базе данных. Несмотря на то, что существует несколько хороших ORM библиотек (таких как GreenDAO, ActiveAndroid или SugarORM), все они имеют свои проблемы. Я никогда не был полностью доволен ими  – они были или сложными в использовании или не имели необходимых функций, например триггеров базы данных. Мое внимание на сегодня обращено на Realm for Android и DBFlow которые, я надеюсь, будут решать все мои проблемы и будут также будут работать быстро.

Выводы

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

Source there

Related Post

Мобильный автомобильный таможенный калькулятор для... Представляю вашему вниманию мобильный автомобильный таможенный калькулятор для Андроид. Программа позволяет производить расчет таможенных плате...
Деноминатор BYR to BYN для Андроид... Тотальная деноминация в Республике Беларусь при помощи вашего мобильного устройства на Андроид! Деноминируйте старые белорусские рубли BYR в новые...
Пример Java Android Tabs – с использованием... Навигация при помощи TAB вкладок достаточно распространенный шаблон проектирования мобильных приложений. Но начиная с версииAndroid 5.0 мы получили Ma...

Leave a Reply

Your email address will not be published. Required fields are marked *