20 сентября 2021 6317
В данный момент наибольшее распространение в мире получили 2 платформы: iOS и Android, Windows - к сожалению колеблется в рамках статистической погрешности. 
Привет! Давайте знакомиться.
Меня зовут Иван Алякскин, и я буду автором Mlog.
Добро пожаловать!
Первая запись будет посвящена возможным способам реализации мобильных приложений.

В данный момент наибольшее распространение в мире получили 2 платформы: iOS и Android, Windows - к сожалению колеблется в рамках статистической погрешности.

Для Android и iOS существуют:
– восхитительные инструменты для разработки;
– классные community: блоги, подкасты, тематические ресурсы;
– огромное количество зрелых open source библиотек.

С помощью “родных” каждой платформе инструментов создается огромное количество
приложений.

Тем не менее порой возникают вопросы:
– Можно ли сделать все силой одной команды?
– Как переиспользовать код между платформами?
– Можно ли сделать решение силами текущей команды?
– Как сделать за минимальное время мобильное приложение для Android и iOS?
– А сделайте нам прототип как можно быстрее, чтобы на всех платформах работал!

Передо мной однажды даже стояла задача реализовать proof of concept работающий на iOS, Android и Windows 7 планшетах, да именно Windows 7. В данной ситуации крайне полезны подходы с использованием кросс-платформенных решений.

Сегодня стоит выделить возможные решения для кросс-платформы:
– Xamarin;
– ReactNative;
– NativeScript;
– Ionic;
– Appcelerator.

По каждому из них можно написать отдельную статью, я же постараюсь дать выжимку и обратить ваше внимание на важные особенности. Но если с вашей стороны возникнет желание и просьба рассмотреть какую-либо платформу отдельно - я с радостью это сделаю в одной из своих следующих статей.

Xamarin
Это платформа была выкуплена компанией Microsoft не так давно. Раньше была платной, теперь же - абсолютно бесплатна. Отличительные особенности состоят в том что:
- разработчикам предлагается C# в качестве языка программирования;
- решение основано на применении платформы Mono;
- все платформенные API предоставляются через классы-прослойки C#;
- существует возможность переизиспользовать UI-компоненты на Android и iOS - Xamarin.Forms;
- в случае необходимости использования родных для системы контролов могут быть использованы Xamarin.Android и Xamarin.iOS.


Данное решение может хорошо подойти если у вас есть готовая команда C#-программистов, которую необходимо переключить на Mobile-разработку.

Так же стоит заметить, что благодаря тому, что используется Mono - производительность не так сильно страдает, как при использовании JavaScript-фрэймворков.

В качестве IDE может быть использована как Xamarin Studio, так и Visual Studio. Пожалуй, один из лучших фреймворков для реализации нагруженных функционалом проектов.

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

ReactNative
Решение от Facebook с достаточно интересным подходом.
Данный фрэймворк:
– является логичным продолжением React только в мобильной разработке;
– в качестве языка программирования используется JavaScript;
– UI нативен для каждой платформы;
– UI как функция текущего состояния;
– в основе паттерн FLUX.



UI выделяется в отдельные компоненты для обеспечения рендеринга состояния. Очень важно правильно организовать data-flow, а также наладить взаимодействие между компонентами. Это необходимо для хорошей организации структуры кода. Крайне рекомендую обратить внимание на Redux.
Мне очень нравится идея React. Однажды научившись писать для веба, можно с легкостью начать использовать этот же подход только для мобильных устройств. Так как UI изолирован, можно добиться большого переиспользования кода между Mobile- и web-решением.


NativeScript
– Native script использует нативный рендеринг, никаких WebView;
– использует Angular 2;
– стандартный двусторонний биндинг;
– в отличие от Phonegap для использования нативных API не надо ставить никакие плагины, все доступно из коробки.

NativeScript по сравнению с ReactNative особо ничем не выделяется, за исключением того, что это Angular2 based framework.

Ionic
– Angular based фрэймворк;
– рендеринг осуществляется в WebView;
– ориентированность на мобильные устройства с большим количеством контролов, ориентированным на мобильные устройства;
– при необходимости использовать платформенные API надо использовать дополнительные plugin’ы;
– очевидно более низкая скорость работы по сравнению с ReactNative и NativeScript.

Appcelerator
– Alloy MVC фрэймворк;
– нативные UI-контролы;
– большой маркетплейс компонент;
– первооткрыватель подхода использования нативных контролов в связке с JavaScript;
– имеется возможность использовать PHP, Ruby, Python.

Выводы
Также в статье можно было бы осветить Qt и другие возможности реализовывать приложение кроссплатформенно.
Как показывает практика, в большинстве случаев кросс-платформенные:
• JS-решения наиболее эффективно используются как:
– часть выделенного функционала приложения работающего с нативными компонентами;
– реализации проверки гипотез, связанных с мобильными приложениями.
• Сложные кросс-платформенные решения используются в “долгую”:
– для реализации компонент вроде SIP-стока;
– математических вычислений;
– графических библиотек;
– и т. д.
• Наиболее рабочим решением кросс-платформенного решения является Xamarin.

Будущее за гибридными решениями, порой от нативных UI-компонент никак не отказаться, тогда возможно бизнес-логику вынести в кроссплатформенные C/C++-библиотеки. Или же необходимо сделать какое-нибудь всплывающее окно, или экран настроек, который может быть запросто реализован на JavaScript. Суперуниверсальных решений к счастью не существует, почему к счастью? Потому что именно благодаря многообразию мира удается щупать новые технологии и находить наиболее подходящие решения, а также вносить элегантные подходы из соседних технологий в разрабатываемые решения.

P.S.: в начале статьи я написал: “Передо мной однажды даже стояла задача реализовать proof of concept работающий на iOS, Android и Windows 7 планшетах, да именно Windows 7.” Данную задачу удалось решить с помощью React + Redux + Material UI, а также Cordova и Electron для упаковки приложения для iOS, Android и Windows 7.


Последние статьи в блоге

Платформа сертификации IBS признана лучшим digital-решением для корпоративного обучения

Центр сертификации IBS стал обладателем Гран-при премии «Смарт пирамида» — одной из самых престижных российских премий за достижения в области обучения и развития человеческого капитала.

20 декабря 2024

Учебный центр IBS получил сертификат ГОСТ Р ИСО 9001-2015

В октябре 2024 года Учебный центр IBS получил сертификат соответствия ГОСТ Р ИСО 9001-2015. Это важное достижение подтверждает, что мы придерживаемся высоких стандартов качества и результативно управляем образовательными процессами организации.

19 декабря 2024

9 курсов со скидкой до 50%

Друзья, в январе стартует 9 курсов, обучение на которых можно купить со скидкой до 50%*! 

15 декабря 2024

8 заблуждений про тестирование

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

15 декабря 2024

Путь к Fullstack-тестировщику: что нужно знать о ручном и автоматизированном тестировании?

Тестирование программного обеспечения — одна из самых востребованных областей в IT. И часто новички и даже опытные специалисты, желающие строить свою карьеру в этом направлении, часто сталкиваются с вопросом: какое тестирование выбрать — ручное, автоматизированное или Fullstack? У каждого из этих направлений свои особенности, преимущества и требования к знаниям. В этой статье рассмотрим каждое из направлений, их плюсы и минусы, области применения и навыки, необходимые для успеха.

15 декабря 2024

Совет по развитию сертификации ИТ-специалистов при АПКИТ аккредитовал «Платформу сертификации IBS»

Директор департамента обучения и развития IBS Владимир Гернер участвовал в заседании Совета по сертификации ИТ-специалистов при АПКИТ.

Новости Жизнь компании
08 октября 2024

Java-сертификация: IBS в сравнении с Oracle

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

Новости
04 октября 2024

Исследование IBS: число новых ИТ-решений в реестре ПО выросло в 2023 году более чем на треть

Анализируем ситуацию на рынке российского ПО.

Жизнь компании
01 октября 2024

6 суперспособностей Fullstack-тестировщиков, которые напоминают навыки животных

Читайте о скиллах, которые делают тестировщиков востребованными на рынке труда.

27 сентября 2024

5 мифов о системных аналитиках

Вместе с Екатериной Тихомировой, специалистом по системному и бизнес-анализу, разбираемся, чем занимаются системные аналитики.

20 сентября 2024

Методология 12 факторов: как успешно разрабатывать облачные приложения

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

12 сентября 2024

Баги, которые стали фичами

Многие вещи, которые мы используем ежедневно, были случайно открыты. В честь дня тестировщика рассказываем про 5 багов, которые стали фичами.

09 сентября 2024

Шаблоны облачного проектирования

Читайте про наиболее популярные шаблоны облачного проектирования: шаблон Bulkhead и шаблон Sidecar.

06 сентября 2024

Бесплатные мини-курсы ко Дню знаний

Друзья, поздравляем с Днём знаний! Желаем любопытства, открытий и новых побед!

02 сентября 2024

5 курсов со скидкой 30%

Друзья, в сентябре стартует 5 курсов со скидкой 30%*

29 августа 2024

Исследование IBS: на одну вакансию в Java-разработке приходится 4 резюме

По данным исследования рекрутингового центра IBS, наибольшая конкуренция среди соискателей наблюдается среди Python-разработчиков: на одну вакансию приходится 10 резюме. В менее конкурентной среде находятся Java-разработчики (4 резюме на одну вакансию). Самыми дефицитными являются специалисты по языку Go: менее 2 резюме на одну вакансию.

28 августа 2024

Индексирование баз данных в PostgreSQL: погружение в тему

В продолжение серии статей об устройстве системы управления базами данных (СУБД) PostgreSQL (раз, два) смотрим, как ускорить выполнение запросов к базе данных с помощью индексов.

28 августа 2024

Книги для системных и бизнес-аналитиков, а также будущих и нынешних архитекторов

Наш коллега, архитектор информационных систем Сергей Политыко, поделился полезными книжными рекомендациями.

Жизнь компании
19 августа 2024

Сценарии кибератак с использованием ИИ. Внутренний периметр.

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

16 августа 2024

Сценарии кибератак с использованием ИИ. Внешний периметр

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

09 августа 2024

Не нашли, что искали? — Просто напишите, и мы поможем

Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных
Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.