Оглядываясь на последние 5 с лишним лет разработки Android и как далеко она зашла

Я создал свое первое приложение для Android в 2015 году. Тогда разработка для Android была совсем другой, чем сейчас. Не было библиотек Jetpack для изучения передового опыта, когда вы имели дело с высокопроизводительными приложениями и большими наборами данных, и не было никаких модных наборов пользовательского интерфейса, таких как ConstraintLayout или MotionLayout. Откровенно говоря, тогда даже Android Studio была не такой уж умной.

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

Язык - Котлин

Вначале я предпочитаю работать с Java, чем с Kotlin, из-за нехватки ресурсов для изучения. Для меня это было несложно, потому что я начал изучать Java еще в колледже. Так что мне потребовалось от трех до четырех месяцев упорной работы, чтобы стать оператором мобильной связи в качестве разработчика Android.

Java - это хорошо, но Kotlin лучше; Мне потребовалось два года, чтобы понять, насколько Java усложняет разработку Android. Без Kotlin нет функций расширения, оператора Элвиса, возможностей DSL или сопрограмм.

Список бесконечен; когда я наконец набрался смелости отказаться от языка, который использую более двух лет, я был удивлен тем, как Kotlin повысил качество разработки для Android. Затем Google анонсировал Kotlin в качестве одного из официальных языков для разработки Android в 2017 году.

С годами команда Kotlin улучшила использование языка за пределами воображения. Сегодня мы можем полностью создавать мобильные (Android и IOS - мультиплатформенный Kotlin) и веб-приложения (KotlinJs) с бэкэнд-поддержкой (Kotlin для бэкэнда) на Kotlin.

По моему опыту, я использовал как Java, так и Kotlin для разработки под Android. Оба языка хороши, но, если сравнивать, без всяких сомнений, Kotlin - победитель. Это улучшает качество кода и производительность разработчиков. Я задокументировал свое путешествие от Java к Kotlin в следующей статье.



UI

В 2015 году существуют ограниченные макеты для создания пользовательского интерфейса, такие как RelativeLayout, LinearLayout, FrameLayout и т. Д. В то время разработчики в основном использовали RelativeLayout для позиционирования представлений относительно и LinearLayout для их выравнивания по вертикали или горизонтали.

Со временем появились такие мощные макеты, как ConstrainLayout. Это почти исключило использование RelativeLayout и LinearLayout. С помощью ContraintLayout мы можем строить сложные макеты в плоской иерархии, что обеспечивает быструю визуализацию.

Перед макетом ограничений, если мы хотим построить такой макет потока, нам нужно создать макет и управлять им с помощью некоторых сторонних библиотек. С помощью мощных функций, таких как Flow в ConstraintLayout, мы можем создавать Flow-Layout в XML.

Затем идет MotionLayout; он изменил способ реализации анимации разработчиками. Мы можем создавать преобразования, анимацию и многое другое совершенно по-новому с помощью XML. Мы также можем обновить незначительные изменения пользовательского интерфейса через XML во время выполнения. Он также поддерживает такие события, как щелчок, смахивание и другие.

Макеты XML - это хорошо, но JetPack Compose лучше.

Это может быть слишком рано, но я уверен, что декларативный подход к пользовательскому интерфейсу в Android с JetPack Compose изменит правила игры. С помощью Jetpack Compose мы можем создать на Kotlin целое приложение для Android - логику, файлы сборки, компоненты пользовательского интерфейса и многое другое. Более того, Kotlin станет основной причиной, почему нам это нравится.

Если вам интересно узнать больше об интерфейсе Android и Jetpack Compose, я бы порекомендовал прочитать следующие статьи:





Библиотеки

На заре Android были доступны только библиотеки поддержки Android. Позже разработчики и компании начали предоставлять некоторые качественные библиотеки, которые могут использовать любые разработчики, такие как ButterKnife, Retrofit, Picasso и другие.

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

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

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

Некоторые из самых популярных и полезных библиотек из семейства Jetpack - это WorkManager, Pagging3, Room, Navigation, CameraX, Viewbinding и другие. Есть несколько интересных библиотек в состоянии альфа и бета, таких как DataStore, Hilt и AppStartup.

AndroidX

На заре разработки Android у нас не было красивого пространства имен androidX; вместо этого мы остановились на библиотеках поддержки Android. Мне было трудно обновлять библиотеки поддержки в каждом выпуске, и я устал от ошибок из-за несовместимости между различными версиями библиотек поддержки.

Артефакты в пространстве имен androidx включают библиотеки Android Jetpack. Как и библиотека поддержки, библиотеки в пространстве имен androidx поставляются отдельно от платформы Android и обеспечивают обратную совместимость между версиями Android.
- Разработчики Android

Версия 28.0.0 - последний выпуск для библиотек поддержки Android; после этого новые выпуски и библиотеки поддерживаются в пространстве имен androidX. По умолчанию студия android создает новый проект в androidX, а также предоставляет простой вариант переноса существующих проектов из библиотек поддержки в androidX. Это работает большую часть времени, но в некоторых случаях, что тоже с большими проектами, нам нужно обрабатывать несколько преобразований вручную.

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



Конфиденциальность и безопасность

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

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

Безопасное общение

Безопасная связь с серверами - одна из важнейших задач любого мобильного приложения. В Android мы можем установить безопасное соединение с помощью закрепления сертификата. Вначале это было реализовано через TrustManager. Затем Google представил собственный подход для реализации закрепления сертификатов через конфигурацию сетевой безопасности. Но я предлагаю использовать закрепление сертификата модернизации. Все подходы, которые я упомянул здесь, хорошо объяснены в следующем сообщении блога.



Безопасность

Хранение конфиденциальных данных в приложении Andriod с самого начала сопряжено с риском, но вскоре все изменится с появлением собственной библиотеки Encrypted Shared-Preference из семейства AndroidX. Все об этом вы можете узнать здесь.

Инструменты

Вначале разработчики использовали Eclipse IDE для разработки приложений для Android. Затем 16 мая 2013 года на конференции Google I / O было объявлено о Android Studio. Первая стабильная сборка была выпущена в декабре 2014 года.

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

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

На этом пока все, надеюсь, вы узнали что-то полезное, спасибо за чтение.