[Разработка мобильных приложений] Как Kotlin Multiplatform экономит время на разработку. Личный опыт создания игрового приложения для KotlinConf 2019
Автор
Сообщение
news_bot ®
Стаж: 6 лет 4 месяца
Сообщений: 27286
Привет! На связи IceRock Development, команда из Новосибирска.
Хотим поделиться полезным опытом. Вот уже 2 года мы занимаемся разработкой на Kotlin Multiplatform. В 2018 году начали реализовывать свои проекты и сразу сделали несколько открытий. В том числе выяснили, что мультиплатформенная технология значительно экономит силы и время.
![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/7974bafdafb645c61c5a7d0f530680ba.png)
Мы еще раз убедились в ее эффективности на KotlinConf 2019, которая проходила в Копенгагене. Это самое масштабное событие в мире программистов на Kotlin. Они собираются, чтобы провести воркшопы, обменяться опытом и просто приятно провести время в кругу единомышленников.
![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/6bc1b88f9b4c5e3eebeadcbd5063332a.jpg)
Да, многолюдненько. Потому что и сообщество программистов объединяет несколько десятков стран. Фото с официального сайта JetBrains
JetBrains, организаторы конференции и создатели языка Kotlin, предложили нам проект. На конференции представляли новую версию языка. Она позволяет писать код в том числе под смарт-часы Apple. Чтобы продемонстрировать эту возможность, мы должны были создать приложение под три платформы: iOS, Android и WatchOS.
Квест во имя Kotlin: что получилось сделать для конференции
Во время подготовки к KotlinConf мы вместе с JetBrains работали над Kotlin Locator/Finder. Это игра-квест, где нужно было побегать по Bella Center. К слову, это второй по величине конференц-центр в Скандинавии, который специально арендовали для KotlinConf 2019 в Копенгагене! Здесь собрались 1700 разработчиков со всего мира.
Суть такая: скачиваешь приложение и с помощью подсказок начинаешь искать «волшебные точки», которые помечены iBeacon-метками. В этих точках можно узнать интересные подробности про Kotlin: историю языка, новые инструменты. Точку обнаружить не так-то просто: она появляется, только если приближаешься к ней на определенное расстояние.
Чтобы пройти игру, нужно найти 6 маячков в разных местах.
![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/8165e2d0ad52bbc8e047cff5488e8ba3.png)
Таким получился интерфейс Kotlin Locator/Finder на iOS для смартфона
JetBrains создали сервер-приложение с несколькими запросами на базе Kotlin Spinner Game. Нам позвонили, рассказали про идею. Арт-лид стал колдовать над дизайном, а технический директор со специалистом занялись «начинкой» приложения.
Мы согласовали с сервером протокол, нарисовали карту и создали архитектуру приложения. Начали разработку на iOS-платформе под смартфон. Первым пунктом в техзадании были смарт-часы. Но версия Kotlin, позволяющая кодить для них, вышла позже. Поэтому приложение для часов сделали после смартфона.
![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/a3fb9712805b7fa3a43620efe2de4196.png)
Так выглядит интерфейс Kotlin Locator/Finder приложения для смарт-часов
Все протестировали. В самом конце подключился Android-программист, реализовал только UI для Android. И — вуаля! — приложение готово.
Делимся наработками:
В процессе у нас получилось:
- первый раз использовать Kotlin/Native на WatchOS с версией компилятора 1.3.60 — всё прошло отлично!
- отладить взаимодействие из общего kotlin кода с iBeacon-метками. Мы работали с библиотекой Reedyuk/blue-falcon. Библиотеку в итоге форкнули себе и доработали.
Часть изменений зареквестили автору оригинала: поиск устройств, отображение устройств. Он принял обратную связь и поблагодарил.
![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/035df78e66e93848404168262dbfe72b.png)
Итог: можно сказать, удалось все, что запланировали. Заодно потестили новую верисю Kotlin Multiplatform и убедились, что на ней действительно можно писать приложение под часы.
Само приложение скачали несколько сотен раз в Play Market и в App Store. Для локального мероприятия очень даже себе показатель. До финала квеста дошли 20 человек. Победителей JetBrains отметили призами.
![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/b23eec498d5917fd50af53573e973239.jpg)
Только посмотрите на эти лица! Да, слегка смущенно выглядят ребята
![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/67af0e950794007d468a2653907d76de.jpg)
Еще бы! Потому что на них смотрят самые крутые Kotlin-разработчики мира!
Сэкономили время и затраты на команду: что нам дала мультиплатформенная технология
Над приложением фулл-тайм работал — барабанная дробь! — только iOS-разработчик. Остальные: дизайнер, Android-программист и тестировщик — трудились на неполную ставку. И сделали полностью нативное приложение!
Нативные приложения сложнее, поэтому и стоят дороже. При стандартной разработке приложения для двух платформ мы бы наняли одного разработчика для iOS, другого — для Android. Потом платили бы фулл-тайм двум разработчикам. То есть делали бы двойную работу и тратили в полтора раза больше ресурсов.
С Kotlin и скорость разработки стала значительно выше. Мы использовали moko-network и по openapi-спецификации сгенерировали весь код по работе сервером для двух платформ. Также весь код логики: логику самой игры, работу с данными, локальное хранение и пр. — написали один раз на Kotlin. Ничего не пришлось дублировать.
Основную часть багов нашли при разработке и отладке iOS-приложения. Поэтому создавали приложения для часов и Android практически без них.
Код Kotlin Multiplatform очень похож на Swift. У приложения Kotlin Locator/Finder на iOS и Android общая бизнес-логика: за поведение на обеих платформах отвечает один кусок кода. Это дает одинаковую детализацию и стабильность работы. Соответственно, и комфорт для пользователя.
![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/cced8e3c33b48ce8315ccbc0c93cc2ae.jpg)
Приложение на iOS
![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/bcd12d3ffaacddcfd0b443b788e468ad.png)
Приложение на Android
При работе на Kotlin Multiplatform мы сэкономили ресурсы, значит, в конечном итоге смогли бы сделать приложение дешевле для клиентов. И гораздо быстрее вывести его на рынок.
Что может дать Kotlin Multiplatform любому бизнесу
Совместное с JetBrains приложение мы делали скорее как имиджевый проект. Но разработка — тоже бизнес. Мы побывали в роли своих же клиентов: точно так же тратили ресурсы и ждали результата, как обычно делают при заказе приложения для коммерческих целей. Поэтому в том, как эффективно Kotlin Multiplatform помогает решить бизнес-задачи, убедились на личном опыте.
Резюмируем кратко:
Быстрый выход на рынок. Все этапы разработки, проверки и тестирования проходят почти в 1,5 раза быстрее, чем при создании нативных приложений отдельно на iOS и Android. Хотя все зависит от сложности UI. Так что ускорить разработку в среднем можно на 20–50%.
Экономия средств. При мультиплатформенной технологии не надо дублировать код, а значит, делать лишнюю работу. Поэтому и оплачивать труд дополнительных специалистов не придется. Если проект простой, приложения для двух платформ может сделать один программист.
Если проект сложнее, одному спецу нужно написать общий код и бизнес-логику. Разработчику другой платформы не придется делать двойную работу. Останется подключить приложение к общей библиотеке и добавить UI.
Полностью нативное приложение. То есть адаптированное под конкретную платформу. Удобное как для разработчика, так и для пользователя.
Совместимость с другими языками программирования. Если у вас есть приложение, в которое вы хотите интегрировать Kotlin Multiplatform, его не придется полностью переписывать. Язык похож на Swift и совместим с Java.
Сейчас мы в IceRock Development ведем большинство проектов с помощью этой технологии. 2019 год мы в компании объявили годом Kotlin Multiplatform.
Стараемся внести свой вклад и в развитие международного Kotlin-сообщества. Подскажем пару полезностей:
- наши опенсорс библиотеки для быстрого старта при использовании Kotlin Multiplatform;
- сайт с библиотеками для Kotlin Multiplatform;
- сайт с библиотеками и ссылками на проекты;
- телеграм-канал, где 800+ программистов обсуждают нюансы использования технологии.
Если есть вопросы, напишите нам на mpp@icerock.dev. Рады любой обратной связи!
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка мобильных приложений, Разработка игр, Игры и игровые приставки] Как я создал мобильную игру для своего ребёнка
- [Разработка мобильных приложений, Тестирование мобильных приложений, Дизайн мобильных приложений] Кошелёк запускает конкурс мобильных разработчиков с призовым фондом в 1 000 000 рублей
- [Разработка под iOS, Разработка мобильных приложений, Swift] Материалы для обучения разработке iOS приложений и составления учебных планов junior, middle и senior iOS разработчиков
- [Программирование, Разработка мобильных приложений, Программирование микроконтроллеров, Умный дом, DIY или Сделай сам] Свой путь в мире, где есть готовое решение для всего
- [Разработка мобильных приложений] Как Kotlin Multiplatform помогает сократить время разработки приложений
- [Разработка мобильных приложений, Разработка под Android, Управление продуктом, Смартфоны] 10 вопросов к поддержке HMS по работе с гибридными приложениями, AppGallery и эмулированию телефонов Huawei
- [Разработка мобильных приложений, Проектирование и рефакторинг, Разработка под Android] Это не я! История одного рефакторинга
- [Разработка под iOS, Разработка мобильных приложений, Swift] Использование Enum + Associated Values при навигации и передаче данных между экранами в IOS приложениях
- [Разработка под iOS, Разработка мобильных приложений, Финансы в IT, IT-компании] В App Store доллар подорожал до 100 рублей
- [Разработка под iOS, Разработка мобильных приложений, Смартфоны] «Красную Кнопку» пустили в App Store
Теги для поиска: #_razrabotka_mobilnyh_prilozhenij (Разработка мобильных приложений), #_kotlin_multiplatform, #_mobilnaja_razrabotka (мобильная разработка), #_krossplatformennaja_razrabotka (кроссплатформенная разработка), #_razrabotka_mobilnyh_prilozhenij (
Разработка мобильных приложений
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 06-Июл 12:10
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 4 месяца |
|
Привет! На связи IceRock Development, команда из Новосибирска. Хотим поделиться полезным опытом. Вот уже 2 года мы занимаемся разработкой на Kotlin Multiplatform. В 2018 году начали реализовывать свои проекты и сразу сделали несколько открытий. В том числе выяснили, что мультиплатформенная технология значительно экономит силы и время. ![]() Мы еще раз убедились в ее эффективности на KotlinConf 2019, которая проходила в Копенгагене. Это самое масштабное событие в мире программистов на Kotlin. Они собираются, чтобы провести воркшопы, обменяться опытом и просто приятно провести время в кругу единомышленников. ![]() Да, многолюдненько. Потому что и сообщество программистов объединяет несколько десятков стран. Фото с официального сайта JetBrains JetBrains, организаторы конференции и создатели языка Kotlin, предложили нам проект. На конференции представляли новую версию языка. Она позволяет писать код в том числе под смарт-часы Apple. Чтобы продемонстрировать эту возможность, мы должны были создать приложение под три платформы: iOS, Android и WatchOS. Квест во имя Kotlin: что получилось сделать для конференции Во время подготовки к KotlinConf мы вместе с JetBrains работали над Kotlin Locator/Finder. Это игра-квест, где нужно было побегать по Bella Center. К слову, это второй по величине конференц-центр в Скандинавии, который специально арендовали для KotlinConf 2019 в Копенгагене! Здесь собрались 1700 разработчиков со всего мира. Суть такая: скачиваешь приложение и с помощью подсказок начинаешь искать «волшебные точки», которые помечены iBeacon-метками. В этих точках можно узнать интересные подробности про Kotlin: историю языка, новые инструменты. Точку обнаружить не так-то просто: она появляется, только если приближаешься к ней на определенное расстояние. Чтобы пройти игру, нужно найти 6 маячков в разных местах. ![]() Таким получился интерфейс Kotlin Locator/Finder на iOS для смартфона JetBrains создали сервер-приложение с несколькими запросами на базе Kotlin Spinner Game. Нам позвонили, рассказали про идею. Арт-лид стал колдовать над дизайном, а технический директор со специалистом занялись «начинкой» приложения. Мы согласовали с сервером протокол, нарисовали карту и создали архитектуру приложения. Начали разработку на iOS-платформе под смартфон. Первым пунктом в техзадании были смарт-часы. Но версия Kotlin, позволяющая кодить для них, вышла позже. Поэтому приложение для часов сделали после смартфона. ![]() Так выглядит интерфейс Kotlin Locator/Finder приложения для смарт-часов Все протестировали. В самом конце подключился Android-программист, реализовал только UI для Android. И — вуаля! — приложение готово. Делимся наработками: В процессе у нас получилось:
![]() Итог: можно сказать, удалось все, что запланировали. Заодно потестили новую верисю Kotlin Multiplatform и убедились, что на ней действительно можно писать приложение под часы. Само приложение скачали несколько сотен раз в Play Market и в App Store. Для локального мероприятия очень даже себе показатель. До финала квеста дошли 20 человек. Победителей JetBrains отметили призами. ![]() Только посмотрите на эти лица! Да, слегка смущенно выглядят ребята ![]() Еще бы! Потому что на них смотрят самые крутые Kotlin-разработчики мира! Сэкономили время и затраты на команду: что нам дала мультиплатформенная технология Над приложением фулл-тайм работал — барабанная дробь! — только iOS-разработчик. Остальные: дизайнер, Android-программист и тестировщик — трудились на неполную ставку. И сделали полностью нативное приложение! Нативные приложения сложнее, поэтому и стоят дороже. При стандартной разработке приложения для двух платформ мы бы наняли одного разработчика для iOS, другого — для Android. Потом платили бы фулл-тайм двум разработчикам. То есть делали бы двойную работу и тратили в полтора раза больше ресурсов. С Kotlin и скорость разработки стала значительно выше. Мы использовали moko-network и по openapi-спецификации сгенерировали весь код по работе сервером для двух платформ. Также весь код логики: логику самой игры, работу с данными, локальное хранение и пр. — написали один раз на Kotlin. Ничего не пришлось дублировать. Основную часть багов нашли при разработке и отладке iOS-приложения. Поэтому создавали приложения для часов и Android практически без них. Код Kotlin Multiplatform очень похож на Swift. У приложения Kotlin Locator/Finder на iOS и Android общая бизнес-логика: за поведение на обеих платформах отвечает один кусок кода. Это дает одинаковую детализацию и стабильность работы. Соответственно, и комфорт для пользователя. ![]() Приложение на iOS ![]() Приложение на Android При работе на Kotlin Multiplatform мы сэкономили ресурсы, значит, в конечном итоге смогли бы сделать приложение дешевле для клиентов. И гораздо быстрее вывести его на рынок. Что может дать Kotlin Multiplatform любому бизнесу Совместное с JetBrains приложение мы делали скорее как имиджевый проект. Но разработка — тоже бизнес. Мы побывали в роли своих же клиентов: точно так же тратили ресурсы и ждали результата, как обычно делают при заказе приложения для коммерческих целей. Поэтому в том, как эффективно Kotlin Multiplatform помогает решить бизнес-задачи, убедились на личном опыте. Резюмируем кратко: Быстрый выход на рынок. Все этапы разработки, проверки и тестирования проходят почти в 1,5 раза быстрее, чем при создании нативных приложений отдельно на iOS и Android. Хотя все зависит от сложности UI. Так что ускорить разработку в среднем можно на 20–50%. Экономия средств. При мультиплатформенной технологии не надо дублировать код, а значит, делать лишнюю работу. Поэтому и оплачивать труд дополнительных специалистов не придется. Если проект простой, приложения для двух платформ может сделать один программист. Если проект сложнее, одному спецу нужно написать общий код и бизнес-логику. Разработчику другой платформы не придется делать двойную работу. Останется подключить приложение к общей библиотеке и добавить UI. Полностью нативное приложение. То есть адаптированное под конкретную платформу. Удобное как для разработчика, так и для пользователя. Совместимость с другими языками программирования. Если у вас есть приложение, в которое вы хотите интегрировать Kotlin Multiplatform, его не придется полностью переписывать. Язык похож на Swift и совместим с Java. Сейчас мы в IceRock Development ведем большинство проектов с помощью этой технологии. 2019 год мы в компании объявили годом Kotlin Multiplatform. Стараемся внести свой вклад и в развитие международного Kotlin-сообщества. Подскажем пару полезностей:
Если есть вопросы, напишите нам на mpp@icerock.dev. Рады любой обратной связи! =========== Источник: habr.com =========== Похожие новости:
Разработка мобильных приложений ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 06-Июл 12:10
Часовой пояс: UTC + 5