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

После 24 февраля 2022 года, события в iOS разработке начали меняться не в лучшую сторону. Приложения "крупных" компаний удаляются из App Store (пример Сбербанк, Альфа банк, ВТБ, Тинькофф). Кажется, что iOS разработчики становятся в России не актуальными, а количество Flutter разработчиков увеличивается. Так что же нас ждет? Неужели придется учить Kotlin, или вообще уходить в C++?

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

Лучик света, на который стоит надеяться

Как оказалось есть закон под названием Digital Markets Act, который регламентирует что Apple обязана предоставить доступ ко всем своим базовым функциям (можно будет даже Мир Pay запилить на iPhone используя Apple NFC), дать возможность ставить свои магазины приложений (не факт, что это будет работать в России, ибо речь идет про Европу), но надежда все же есть на это. Возможно это будет завезено экспериментально, и только в Европу, пока что не понятно как это будет реализовано и есть туча споров и мнений на этот счет, но шанс все же есть. Есть также вероятность того, что СВО рано или поздно  может закончиться (но санкции не факт что снимут сразу, и снимут ли их вообще). Да, возможно iOS станет чем-то похож на Android, и для кого-то это совсем ужасно, но со своей стороны я вижу, что эта ситуация обернется для нас как для разработчиков большим количеством работы (и заработков, соответственно). Так что, разработка нативных мобильных приложений все еще актуальна. Ссылка на источник.

Запасной план

Если вы Middle или Senior iOS разработчик, боитесь и переживаете что вы останетесь без работы - начните изучать смежную технологию, или вообще что-то другое (например, backend / frontend разработка). Изучайте параллельно с работой Kotlin, Dart или Ruby с Go (это просто как пример). Не нужно заниматься до изнеможения, развивайтесь в свое удовольствие. Вам нужно понимать, что даже если что-то пойдет не по плану и iOS разработка станет не актуальной - не будет ничего страшного. Вы всегда в любой момент сможете переквалифицироваться в другое направление. Суть в том, что если заниматься параллельно развитием сейчас, то вы будете опередите других разработчиков на несколько шагов (а значит вы будете стоить дороже), в случае угасания iOS. С точки зрения теории игр, выгодно оказаться впереди всех остальных и не выгодно оказаться позади.

Ну а если вы стажер или Junior iOS разработчик, то вам лучше развиваться в iOS и не забивать себе голову лишним. Как только станете минимум уровня уверенного Middle iOS разработчика, у вас откроются двери для изучения других технологий.

Так все же, Flutter или Swift?

Дело в том, что бизнесу намного выгоднее Flutter разработчики, так как там единая кодовая база. Вы пишете 1 код сразу на несколько платформ (кстати, frontend и backend там тоже есть). То есть, бизнесу проще нанять 3-х flutter разработчиков, чем нанимать несколько команд разработчиков. Поэтому flutter сегодня и становится актуальным. Давайте разбираться.

Flutter

Flutter - это хороший инструмент для создания продуктов и обеспечения высокой скорости разработки. Всего лишь два-три разработчика способны создать впечатляющий объем функциональных возможностей и быстро представить готовый продукт. Кроме того, достигается приемлемый уровень look-and-feel и производительности. Обилие доступных библиотек также решает множество задач стандартного функционала. Однако, как и в любом деле, есть свои нюансы, которые следует учитывать. Основной задача Flutter - создание пользовательского интерфейса. Такая же задача у языка программирования Dart, который используется в паре с ним.

Создатели Flutter задумывали эту библиотеку как инструмент, который можно легко интегрировать в существующие приложения и использовать для описания интерфейса на разных платформах. На данный момент Flutter успешно освоил мобильные платформы, добавил поддержку веб-разработки и нацелился на компиляцию для настольных платформ (уже даже работает, у меня есть приложение в App Store для MacOS). Однако нельзя считать Flutter полноценным фреймворком для разработки мобильных приложений в полном объеме - он ориентирован на интерфейсы. Некоторые программисты считают, что один инструмент и одна библиотека могут решить все задачи, но это мнение не всегда справедливо.

Если ваша задача сводится к получению данных из интернета и выводу их на экран, то ничего не мешает вам использовать Flutter для полного приложения. С развитием мощности устройств возможности инструмента постоянно расширяются. Однако важно помнить о существующих границах и не забывать о том, что Flutter прежде всего ориентирован на создание интерфейсов. Если вы сталкиваетесь с ограничениями, не стоит отчаиваться. Привлечь экспертов по нативной разработке для решения специфических задач - вполне нормальная практика. Некоторые разработчики успешно комбинируют Flutter с KMM (Kotlin Multiplatform Mobile) и получают впечатляющие результаты. Но такие эксперименты требуют творческого подхода и стремления к изучению нового.

Следует также учитывать, что при использовании Flutter для разработки приложений под iOS и Android с разными дизайнами (с учетом Human Interface Design Guidelines и Material You) возникают определенные сложности. Поддержка двух разных дизайн-подходов в одной кодовой базе - непростая задача. Это не только касается внешнего вида, но и структуры навигации и компонентов. Приходится писать два модуля с интерфейсом, добавляя условия для разных платформ. Готовые элементы интерфейса для iOS также могут быть недостаточно оптимизированы и придерживаться устаревших гайдлайнов (iOS 12, не выше).

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

Итак, Flutter - это крутой инструмент, который больше конкурирует с React Native, чем с другими решениями. Он подходит тем, кто стремится сделать опыт использования интерфейса общим для всех платформ.

Swift

Безусловно, разработка на нативе часто представляется сложной задачей. Поиск квалифицированных разработчиков, разнообразные подходы к дизайну и увеличение времени выполнения проектов - все это вызывает определенные трудности. Задачи могут быть поставлены по-разному, иметь разную сложность и требовать разной экспертизы. С точки зрения разработчиков, есть проблемы с конфигурацией проектов, настройкой окружений и написанием бойлерплейта (повторяющийся код). Однако, с развитием современных технологий, опыт разработки для нативных платформ становится более унифицированным. Языки программирования Swift и Kotlin, используемые для разработки iOS и Android соответственно, имеют много общего. Разработчики языков стремятся сгладить углы миграции программистов между ними, что упрощает переходы между платформами. Важным шагом к унификации подходов к описанию пользовательских интерфейсов является выход фреймворка Jetpack Compose для Android, который получил стабильную версию. Совместно с фреймворком SwiftUI от Apple, можно говорить об эпохе унификации опыта разработки.

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

struct CityView: View {
    let cityName: String
    let population: Int
     
    var body: some View {
        VStack {
            Image("cityImage")
                .resizable()
                .aspectRatio(contentMode: .fit)
                .frame(height: 200)
             
            Text(cityName)
                .font(.title)
             
            Text("Population: (population)")
                .font(.subheadline)
        }
    }
}
 
struct ContentView: View {
    var body: some View {
        CityView(cityName: "New York", population: 8175133)
    }
}

А теперь посмотрим код Jetpack Compose:

import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.layout.wrapContentWidth
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
 
@Composable
fun CityView(cityName: String, population: Int) {
    Column(
        modifier = Modifier
            .fillMaxWidth()
            .padding(16.dp)
    ) {
        Image(
            painter = painterResource(R.drawable.city_image),
            contentDescription = "City Image",
            modifier = Modifier
                .fillMaxWidth()
                .wrapContentHeight(),
            contentScale = ContentScale.FillWidth
        )
 
        Text(
            text = cityName,
            color = Color.Black,
            fontSize = 24.sp,
            fontWeight = FontWeight.Bold,
            modifier = Modifier
                .padding(top = 8.dp)
        )
 
        Text(
            text = "Population: $population",
            color = Color.Gray,
            fontSize = 16.sp,
            modifier = Modifier
                .padding(top = 4.dp)
        )
    }
}
 
@Composable
fun ContentView() {
    CityView(cityName = "New York", population = 8175133)
}

Очевидно, что этот процесс сопровождается схожей логикой для программистов, что позволяет хорошим разработчикам быстро адаптироваться и создавать интерфейсы, формы, кнопки и списки с соответствующей логикой без особых проблем. Однако, существует проблема в развитии и поддержке двух кодовых баз, которая всегда обходится дороже, чем использование единой кодовой базы для кросс-платформенной разработки. Экономический резон становится драйвером развития кроссплатформенных решений, так как унифицированный опыт привлекает пользователей к экосистеме компании. Именно поэтому код на разных платформах и языках становится все более схожим, и разработчики, имеющие опыт работы с iOS, могут перейти к разработке под Android, и наоборот. Команды, работающие с нативными технологиями, часто дополняются программистами на C/C++, которые создают кроссплатформенные модули для различных задач, в основном, не связанных с бизнес-логикой.

UIKit или SwiftUI?

А вот это уже более интересная тема. Этим вопросом интересуется множество iOS разработчиков, потому что в конечном итоге не понятно, а к чему готовиться? Уйдет ли UIKit? Станет ли SwiftUI очень популярным?

Сейчас мы детально все разберем.

Начнем с того, что же такое SwiftUI во плоти. SwiftUI - фреймворк, который позволяет вам проектировать и разрабатывать пользовательские интерфейсы декларативно, с меньшим количеством кода. Был впервые выпущен в 2019 году с версией 13 iOS SDK.

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

Давайте по порядку. Рано или поздно, UIKit исчезнет. Не смотря на его активную поддержку Apple делает косвенные намеки на то, что пора уже переходить на новый framework. Примером того стал предыдущий год обновления Big sure, где Apple красиво провели оптимизацию UIKit, настолько красиво что разработчики плевались и писали гневные письма до самого выхода новой операционной системы. 

А что насчет Sonoma? Ведь там завезли много новых фич для UIKit?

Да, все верно. Но я бы сделал несколько исправлений в этом вопросе для составления нового утверждения. Эти фичи также завезли и в UIKit. Посмотрите внимательно, множество вещей которые были добавлены в UIKit есть и в SwiftUI. При этом, сделаю примечание о том, что после обновления на Sonoma, я не испытывал никаких сложностей на SwiftUI проекте. Все работало как часы, Xcode ни разу не крашнулся что привело меня в какое-то негодование. 

Но стоит заметить, как только я создал проект с UIKit, я начал плеваться повторно. Они красиво пофиксили баги в storyboards и xib-х (и то не все), но совершенно забыли про сам Xcode (изначально на бетте когда я создавал в xcode новые файлы он взрывался и крашился каждый раз, как только я это делал). Хочу заметить что такой проблемы в SwiftUI не было. Не буду приводить полный перечень проблем, я думаю что вы и сами их знаете. Но уже прошел релиз, и проблемы хоть и поправили (но не все). Симулятор у меня так и продолжает жить своей жизнью, хотя на SwiftUI проектах опять же, такого нет (интересно, в чем же закономерность?).

На секундочку отвлечемся и получим интересную информацию. Аналог SwiftUI на Android это Jetpack Compose. Большая часть сообщества Android разработчиков уже перешли к его использованию. Именно это и ожидает UIKit в ближайшем будущем, и к этому нужно готовиться как физически так и морально (не хочу никого расстраивать, просто я реалист).

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

Если вы разработчик начального уровня - то лучше не смотреть в сторону SwiftUI. Как я уже говорил ранее, переходить с UIKit на SwiftUI - не проблема, но обратно очень тяжело.

Доступная версия разработки под SwiftUI начинается с iOS 13, но реальная версия разработки под SwiftUI начинается с iOS 15 (а в идеале 16). Все дело в том, что фреймворк менялся в течении iOS 13, 14 и 15 причем настолько сильно что проекты которые были написаны на iOS 14 очень тяжело контролировать под iOS 13. У вас появляется тонна бойлерплейта, костылей и всех радостей жизни которые в свое время отпугнули разработчиков от этого фреймворка. В данный момент начиная с iOS 15 проблем при разработке на SwiftUI нет (если есть то совсем чуть-чуть, но с iOS 16 вообще все супер). Мало костылей и мало мест в которых играет различие операционных систем (но они все еще есть, такое встречалось в приложениях над которыми я работал). 

Чтобы облегчить переход от UIKit к SwiftUI, для разработчиков сделали UIViewRepresentable.

UIViewRepresentable - это протокол, предоставляемый фреймворком SwiftUI. Используя этот протокол, можно обернуть экземпляр представления UIKit, чтобы его можно было отображать с помощью SwiftUI.

Сейчас при собеседованиях очень часто спрашивают вопрос - вы умеете писать на SwiftUI?

Люди ринулись переходить на него, и это заметно даже по вакансиям на hh.ru.

Совет! Если ваш грейд (по вашим ощущениям) выше уровня middle, то вам непременно стоит заглянуть в этот мир декларативного программирования. Если же нет, то лучше изучите поглубже UIKit и только потом принимайтесь за этот фреймворк.

Как я уже говорил (и возможно буду еще повторяться) декларатиивное программиирование — парадигма программирования, в которой задаётся спецификация решения задачи, то есть описывается ожидаемый результат, а не способ его получения.

Кстати, SwiftUI действительно работает лучше UIKit:

С точки зрения времени разработки SwiftUI обычно работает лучше, чем UIKit. Связано с тем, что иерархия представлений находится в структурах типа значений, хранящихся в стеке, что означает отсутствие дорогостоящего выделения памяти. Означает более высокую производительность в некоторых ситуациях.

А теперь перейдем рассмотрению актуальных iOS технологий на сегодняшний день, и поймем что разработчики мобильных приложений - нужны! И поймем, на что нам стоит обратить внимание как разработчикам.

Технологии iOS

На что же нам стоит обратить внимание как разработчикам? Давайте внимательно рассмотрим технологии iOS:

  1. Супер приложения становятся все более актуальными. Сейчас эта тенденция началась в Китае и Индии и постепенно перетекает и в Россию.
    Ожидается, что концепция «суперприложений» получит распространение и в других регионах. Пользователи ищут более удобные и интегрированные способы доступа к необходимым им услугам. Эта тенденция открывает новые возможности для разработчиков приложений, которые могут создавать «суперприложения», объединяющие широкий спектр услуг и предлагающие интегрированный опыт для пользователей. Используя новейшие технологии и инновационный дизайн, разработчики могут создавать суперприложения, которые просты в использовании, обладают высокой функциональностью и привлекательным внешним видом.
    Вот некоторые из ключевых преимуществ супер приложений:

    1. Повышенная эффективность

    2. Улучшенный пользовательский интерфейс

    3. Повышенная безопасность

    4. Универсальная платформа для услуг

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

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

    Выгодна использования таких приложений:

    1. Удобство — через эти приложения пользователи могут заказать еду, забронировать поездку или заказать услугу на дому. Они также могут отслеживать свои заказы и получать обновления в режиме реального времени о статусе своих запросов.

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

  1. Dynamic Island

    Как и ожадилось все новые iPhone появились на этот свет с Dynamic Island, поэтому можно посмотреть на Apple API для него и попробовать сделать какие-нибудь заготовки для заказчиков. Дело в том, что в зарубежных и крупных приложениях очень часто встречается какое-то взаимодействие с ним в последнее время. Раз крупные заказчики готовы платить за это, то можно и рассмотреть эту область. Самое крутое что я видел с Dynamic Island было приложение для Reddit под названием Apollo. Там можно было завести питомца которого ты кормишь и он живет над островком, бегает прыгает и целует палец когда ты на него нажимаешь. Геймификация + Dynamic Island, по своей сути. Но про первое мы поговорим чуть позже.

  2. Apple Pay

    Как бы грустно это не звучало но в наших реалиях эта технология стала не самой актуальной, но тем не менее не стоит отчаиваться. В скором времени все может поменяться в другую сторону. К сожалению, на сегодняшний день известно что iOS 17 станет более открытой но только для Европы и то в качестве Beta тестирования. Есть вероятность что в iOS 18 система станет максимально открытой, и мы как разработчики сможем написать собственный Apple Pay но только для России, используя встроенный NFC в iPhone. Скорее всего в первую очередь появится МИР Pay, но кто знает. Может мы сможем лучше?

  3. Camera-focused Apps

    В последние годы спрос на приложения, ориентированные на камеру, резко вырос. Из-за воздействия пандемии Covid-19 и перехода к удаленной работе и онлайн-общению этот переход значительно увеличился. Поскольку все больше людей проводят время дома и полагаются на технологии, чтобы оставаться на связи, возрос спрос на приложения, использующие камеру для различных целей. Одной из областей, где эта тенденция особенно заметна, является разработка приложений для видеоконференций. Они стали незаменимыми инструментами для удаленного общения и совместной работы. Видеоприложения позволяют пользователям участвовать в виртуальных встречах, презентациях и дискуссиях из любой точки мира, используя камеры своих смартфонов или планшетов. Социальные сети — еще одна область, в которой набирают популярность приложения, ориентированные на камеру.

    Социальные приложения с такими функциями, как TikTok, Reels и другими, становятся все более популярными. Это потому, что пользователи ищут новые и творческие способы поделиться своей жизнью и связаться с друзьями и семьей. Эти приложения используют камеру, чтобы пользователи могли создавать короткие видеоклипы, которыми они могут поделиться с более широкой аудиторией. 

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

    1. Добавление наград и задач в фитнес-приложения 

    2. Внедрение списков лидеров и систем начисления очков в приложения для повышения производительности 

    3. Использование полос и ежедневных целей для мотивации пользователей и многое другое


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

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

  5. Не стоит забывать и про поддержку 5G. Он появился совсем недавно, и к сожалению в России его еще нет но готовиться к его появлению все же нужно.

    Сети 5G могут похвастаться значительно более высокими скоростями и меньшей задержкой по сравнению с мобильными сетями предыдущих поколений. Повышенная скорость и производительность открывают новые возможности для разработки приложений для iOS, позволяя разработчикам создавать более продвинутые и интерактивные приложения. С широким распространением технологии 5G растет спрос на оптимизированные приложения, позволяющие использовать преимущества более высоких скоростей и меньшей задержки, которые обеспечивают сети 5G. Это означает разработку приложений, которые могут обрабатывать большие объемы данных и поддерживать взаимодействие в реальном времени, что приводит к улучшению пользовательского опыта и повышению эффективности. Будь то потоковая передача высококачественного видеоконтента, проведение видеозвонков с минимальной задержкой или предоставление обновлений в реальном времени, поддержка 5G является важнейшим аспектом разработки приложений в эпоху 5G, поэтому нам как разработчиком нужно быть готовым к тому, что с этим придется работать и от 5G никуда не уйти.

  6. Конечно же AI приложения не остаются без внимания.

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

    С ростом популярности ИИ и машинного обучения у разработчиков приложений для iOS появилось больше возможностей для использования этих передовых технологий. В 2023 году мы ожидаем увидеть больше корпоративных приложений, созданных с использованием AI и ML в своей основе, с использованием методов глубокого обучения, таких как генеративно-состязательные сети (GAN) и граничные вычисления.
    Платформа Apple Core ML является ключевой, позволяя разработчикам легко и беспрепятственно интегрировать модели машинного обучения в приложения iOS. Таким образом, разработчики могут добавлять в свои приложения такие функции, как распознавание изображений и обработка естественного языка, тем самым улучшая взаимодействие с пользователем. Например, приложение, использующее Core ML для распознавания изображений, может автоматически обнаруживать и классифицировать объекты на изображениях, что значительно упрощает жизнь пользователя.
    Al и ML меняют способ создания и использования приложений iOS, и разработчики должны знать о возможностях этих технологий. Благодаря Core ML у разработчиков теперь есть инструменты для использования AI и ML и создания более мощных, привлекательных и полезных приложений.

  7. Приложения для Apple Watch

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

    1. отслеживание физической формы;

    2. проверка погоды;

    3. получение уведомлений и напоминаний и т. д.

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

    На пути к значительному росту CAR на 14,6% в период с 2023 по 2030 год подобные технологии никуда не денутся. Вот почему мы как разработчики должны знать о трудностях, связанных с разработкой приложений для подобных устройств, чтобы создавать приложения, которые могут идти в ногу с постоянно растущим рынком.
    Помимо улучшения взаимодействия с пользователем, разработчики должны разрабатывать приложения с учетом требований безопасности. Поскольку пользователи имеют доступ к конфиденциальным личным данным, разработчики приложений должны принять меры для обеспечения безопасного хранения данных и безопасного доступа к приложению. Несмотря на проблемы, эти устройства могут значительно улучшить жизнь пользователей, обеспечивая быстрый и удобный доступ к важной информации и функциям.

  8. Облачная интеграция

    По мере того, как разработчики продолжают переходить на облачные вычисления для разработки приложений и услуг, предприятия осознают множество преимуществ, которые предлагает облачная технология. Прогнозируется, что к концу 2023 года использование облачных вычислений станет еще более распространенным, поскольку технология продолжает развиваться и интегрироваться в еще большее количество приложений (Пегий Дудочник?). Популярные облачные приложения в Apple Store включают Google Drive, Dropbox и Microsoft Office 365.

    Приложения iOS все чаще используют облачную интеграцию для решения широкого круга задач, таких как:

    1. Обмен файлами между пользователями

    2. Повышение безопасности.

    3. Повышение гибкости.

    4. Отправка данных на сервер.

    5. Получение информации, хранящейся в базе данных, в любое время.

    6. Использование вариантов аварийного восстановления.

  1. Apple Cloudkit — это комплексная облачная платформа для разработчиков, предлагающая мощные инструменты для организации, управления и создания облачных приложений. Благодаря набору API-интерфейсов разработчики могут создавать приложения, которые хранят данные на серверах Apple и синхронизируют их на всех пользовательских устройствах. Эти функции делают его более ценным: автоматическая синхронизация, зашифрованные данные, защищенная конфиденциальность и автоматизация. С помощью Cloudkit разработчики могут сделать свои приложения умнее и эффективнее с меньшими усилиями. Это помогает упростить процесс разработки и упрощает интеграцию с облаком.

  2. Интеграция Интернета вещей (IoT)

    IoT, или «Интернет вещей», относится к постоянно растущему присутствию электроники, программного обеспечения, датчиков, исполнительных механизмов и средств связи в физических устройствах, транспортных средствах и других предметах. Эта интеграция позволяет этим объектам общаться и передавать данные, обеспечивая большую интеграцию физического мира в компьютерные системы через существующую сетевую инфраструктуру. С помощью Интернета вещей пользователи могут удаленно управлять и контролировать свои устройства умного дома, такие как освещение, термостаты и системы безопасности, прямо со своих устройств iOS. Это дает пользователям удобство и возможность более легко управлять своей цифровой жизнью, делая жизнь дома умнее и проще. Интеграция устройств IoT в приложения произвела революцию в том, как люди взаимодействуют со своими интеллектуальными устройствами. Теперь пользователи могут оптимизировать и автоматизировать свои повседневные дела с помощью автоматизированного планирования, процедур и уведомлений, что делает их более эффективными и действенными. В 2023 году количество подключенных устройств IoT увеличилось на 28%, в результате чего их общее количество составило примерно 22,4 миллиарда. С таким количеством подключенных устройств неудивительно, что разработчики iOS используют эту технологию и включают ее в свои приложения. Таким образом, они предоставляют своим пользователям более (сейчас скажу грубо) интуитивно понятный и привлекательный опыт. Интеграция IoT в приложения предоставляет пользователям более эффективный способ управления своими повседневными делами и позволяет разработчикам создавать еще более инновационные приложения. Поскольку миллиарды людей взаимодействуют со своими интеллектуальными устройствами, интеграция устройств IoT в приложения быстро становится одной из самых важных тенденций в технологической отрасли.

  3. Мобильные кошельки

    Мобильные кошельки стали одним из самых популярных трендов в разработке приложений для iOS. Мобильный кошелек, также известный как цифровой кошелек, представляет собой приложение, которое позволяет пользователям хранить все свои кредитные, дебетовые карты, карты лояльности и бонусные карты в одном удобном месте. Благодаря росту числа мобильных кошельков в таких странах, как Индия и Китай, мобильные кошельки значительно выросли из-за высокого уровня проникновения смартфонов и множества клиентов, не пользующихся банковскими услугами. Эти страны полностью внедрили эту технологию, упростив безопасное хранение платежей и управление ими. Новое исследование Juniper предполагает, что к 2026 году число пользователей мобильных кошельков во всем мире превысит 5,2 миллиарда. Это означает, что более половины населения мира будет иметь доступ к функциям и преимуществам приложений для мобильных кошельков — невероятный рыночный потенциал. Самые популярные сервисы мобильных кошельков включают PayPal, Apple Pay, Google Pay и Amazon Pay, каждый из которых предлагает полезные функции и преимущества. От программ лояльности и подарочных карт до повышения уровня удержания клиентов и уровня удовлетворенности — компании могут максимально использовать приложения для мобильных кошельков, чтобы увеличить продажи своих существующих клиентов (кстати недавно ходил на концерт, используя Apple Wallet. Билеты добавились прямо в кошелек, и проходил я по NFC, очень интересно как это было сделано).

  4. Интеграция дополненной и виртуальной реальности

    Две передовые технологии, которые помогут вам создавать более привлекательные приложения для iOS, включают дополненную реальность (AR) и виртуальную реальность (VR). Эти передовые технологии можно интегрировать в приложения, чтобы сделать их более захватывающими, интерактивными и привлекательными. В ближайшие несколько лет мы увидим больше компаний, использующих эти технологии для создания крутых приложений, которые привлекают пользователей и поддерживают их вовлеченность. Разработчики iOS могут использовать AR/VR для создания приложений в различных отраслях, в том числе:

    Игры: разработчики могут создавать интерактивные и увлекательные игры, которые заставляют игроков критически мыслить, сотрудничать с другими и оттачивать свои навыки решения проблем.

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

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

    Путешествия и туризм: разработчики могут создавать собственные мобильные приложения для путешествий, которые позволяют пользователям исследовать места назначения до того, как они отправятся в виртуальное путешествие. Эти приложения могут предоставлять актуальную информацию о направлениях и рекомендации по ресторанам и отелям, а также позволяют пользователям легко бронировать авиабилеты и проживание. Apple существенно повлияла на тенденцию AR/VR благодаря своим инновациям. Компания представила:

    ARKit: ARKit от Apple — это платформа, которая позволяет разработчикам iOS создавать приложения дополненной реальности для iPhone и iPad. ARKit предоставляет разработчикам инструменты для отслеживания движения, обнаружения плоскостей и оценки освещения, упрощая создание высококачественных приложений дополненной реальности.

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

    Камеры iPhone с поддержкой AR: Apple продолжает улучшать камеры своих устройств iPhone, добавляя такие функции, как определение глубины и отслеживание AR. Это позволило разработчикам создавать более реалистичные и захватывающие возможности дополненной реальности.

    Поддержка виртуальной реальности для компьютеров Mac: Apple добавила гарнитуры виртуальной реальности к своим компьютерам Mac, чтобы разработчикам было проще создавать возможности виртуальной реальности для macOS. Это открыло новые возможности для создания иммерсивного опыта в различных отраслях.
    Apple Glass: очки дополненной реальности от Apple, известные как Apple Glass уже есть в продаже. Они могут оказать значительное влияние на тенденцию AR/VR. Очки предоставляют пользователям захватывающий опыт дополненной реальности, который может революционизировать наше взаимодействие с технологиями.

  5. Технология iBeacon

    iBeacon — это революционная технология, которая использует Bluetooth LE для отправки сигналов на мобильные устройства, а также предоставления уведомлений и рекламных акций с учетом местоположения для клиентов магазина. Это небольшое недорогое устройство существует с 2013 года, но широкое распространение оно получило лишь недавно. Воспользовавшись этой передовой технологией, розничные продавцы могут предложить покупателям уникальный и персонализированный опыт. С помощью iBeacon клиенты могут получать рекламные акции и уведомления по их местоположению, что делает их покупки еще более приятными. Как правило, вы можете использовать iBeacons для:

    1. отслеживания местоположения людей и предметов;

    2. отправки персонализированных уведомлений клиентам;

    3. создания интерактивных впечатлений;
      слежением за производительностью вашего физического пространства;

    4. сбора ценных данных о поведении клиентов;

    5. автоматизации процессов для повышения эффективности и точности.


    Apple недавно выпустила SDK, чтобы упростить разработчикам включение iBeacons в свои приложения без написания кода. Теперь пользователи могут отказаться от получения уведомлений от определенных приложений, выполнив несколько простых действий. Это означает, что технологию iBeacon нужно внедрять ответственно, предоставляя пользователям больший контроль над тем, как они получают уведомления, и снижая риск того, что они станут чрезмерно навязчивыми.

  6. Высокий уровень безопасности

    Безопасность является первостепенным соображением при разработке приложений для iOS. Согласно недавнему исследованию, проведенному Acronis Cyber ​​Protection Operation Center, ожидается, что к 2023 году средняя стоимость утечки данных превысит 5 миллионов долларов. По этой причине разработчики приложений для iOS должны с самого начала уделять приоритетное внимание безопасности, следуя передовым методам, таким как:

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

    Кроме того, разработчики могут использовать различные меры безопасности, такие как хеширование, обфускация, шифрование и шифрование хранилища ключей, для дополнительной защиты своих мобильных приложений iOS. Чтобы обеспечить высочайший уровень безопасности и защитить конфиденциальность и целостность данных приложений iOS и их подключений к веб-службам, Apple запустила AppTransportSecurity (ATS). С помощью ATS разработчики могут легко интегрировать расширенные меры безопасности в свои приложения, гарантируя защиту конфиденциальной информации от злонамеренных киберпреступников, постоянно разрабатывающих новые способы проникновения в мобильные устройства. Сейчас как никогда предприятиям и частным лицам необходимо гарантировать защиту своих данных.

  7. Siri становится сильнее

    Приложения для голосовых помощников станут довольно популярными, и развитие iOS в этой области будет только расти. По прогнозам Juniper Research, к концу 2023 года 8,5 миллиардов устройств будут оснащены голосовыми помощниками. Кроме того, обновленная Siri для iOS станет более представительной и сможет гораздо эффективнее общаться с пользователем. Новая Siri поддерживает много различных языков в дополнение к международным, что позволяет клиентам просто искать то, что им нужно. Соответственно, Siri сможет более естественно общаться с пользователем и понимать его потребности, прислушиваясь к тону его голоса.

  8. Apple определила API, использование которых надо будет объяснять

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

    1. Сделали это, конечно, во имя конфиденциальности и безопасности, чтобы по ним не отслеживали отдельных пользователей.

    2. Среди API - File timestamp API, определяющие даты создания файлов, System boot time API, раскрывающие информацию о времени работы ОС, Disk space API, дающие информацию о доступном пространстве в хранилище.

    3. User defaults API, самая простая "официальная" система для хранения настроек и прочей информации, тоже попал под раздачу.

    4. Все это касается и сторонних SDK, за них тоже надо будет отчитываться.

    5. Начиная с осени 2023 г. при загрузке в App Store Connect нового приложения или обновления приложения, использующего API, для которого требуется указание причины, вы будете получать уведомление, если в декларации конфиденциальности вашего приложения не указана утвержденная причина.
      А начиная с весны 2024 г. это станет обязательным.

Что делать и как быть дальше - решать только вам. Я лишь предоставил вам пищу для размышлений. В некоторых моментах я могу быть неправ, могу заранее написать, что это исключительно мое мнение, и я никого не призываю слушать меня. Давайте дискутировать в комментариях, и становиться сильнее и лучше.

Кстати, лично я остался в рынке нативной iOS разработки, и продолжаю писать на UIKit (несмотря на то что я преверженец SwiftUI). Обзор технологий был сделан для того, чтобы показать, что iOS разработка жива, и не стоит бояться того что завтра же мы останемся без работы. Мы программисты,  программисты это сильные люди, которые смогут адаптироваться ко всему (знаю не понаслышке).

Всем добра и хорошего настроения!

Комментарии (2)


  1. Moog_Prodigy
    19.10.2023 10:30

    предприятия осознают множество преимуществ, которые предлагает облачная технология

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


  1. deafjam79
    19.10.2023 10:30

    iOS разработчику уровня Senior надо подучить Английский, если он завис тут.