Выбор между стойкой и колесами — HTML5 и родной средой программирования — рано или поздно встает перед любым мобильным разработчиком, для которого важно присутствовать на разных платформах.
Нас в УБАНК он тоже этого не пропустил.
В 2011 году мы начали с html-версии, которая работала на Android. Мы готовились портировать его на другие платформы, несмотря на трудности, с которыми нам пришлось столкнуться.
Но в итоге через два года они отменили этот проект и заменили проект нативными приложениями.
В этой заметке Ведущий девелопер УБАНКа Александр Путилин постараемся рассказать о нашем опыте создания кроссплатформенного приложения, а также поделимся некоторыми идеями о том, почему HTML5 все еще нужен и как его можно победить.
К комментариям приглашаются те, кто интересуется практическими вопросами.
Бета-версия на Баде
Александр Путилин: — Конечно, в HTML нас привлекла его мультиплатформенность.Перед УБАНКом стояла задача присутствовать на всех популярных устройствах.
Казалось, что создать веб-приложение один раз, а затем портировать его на все платформы, будет гораздо проще, чем писать для каждой свое нативное.
Разработка началась в 2011 году.
Мы решили начать с платформы Bada. Samsung была стратегическим партнером нашего стартапа.
И это была его родная платформа, на которой корейцы выпустили около 200 моделей телефонов.
В 2010–2011 годах он занимал около 10% российского мобильного рынка и выглядел перспективным.
Я начал писать приложение с использованием фреймворка PhoneGap. Задача была выполнена за пару месяцев.
К концу 2011 года наша версия приложения вышла на уровень достаточно стабильной бета-версии.
Но тут случилась маленькая неприятность: Samsung неожиданно решила закрыть Bada. Корейцы начали разработку операционной системы Tizen, планируя в будущем объединить ее с Bada. Выпускать наше приложение на Bada уже не имело смысла, хотя оно было готово.
Мы, однако, не очень расстроились.
Ведь неродная версия позволила нам легко портировать приложение на любое устройство, верно? Это нормально.
Мы начали портировать нашу разработку на Android, не выпуская в мир УБАНК на Bada. Но здесь все оказалось сложнее, чем мы думали.
Борьба с Android
Первой проблемой было шифрование.Изначально фреймворк предназначался просто для создания приложений — формы, тексты, вывод данных, в общем, ничего сложного.
А нашему платежному приложению требовалось шифрование.
При этом математика в java-скрипте работает откровенно плохо — на порядки медленнее, чем в нативном коде.
Чтобы реализовать шифрование и не заставлять пользователя ждать пару минут завершения операции, нам пришлось написать куски нативного кода, которые бы взаимодействовали с html-интерфейсом.
Таким образом, нативный код в приложении составлял около 10%.
И, наверное, было бы неплохо, если бы остальная часть кода работала как надо.
Но нет. Android, как известно, имеет слишком много модификаций, сильно отличающихся друг от друга.
На iOS в новых версиях добавляются новые возможности, но обычно старые не отваливаются.
На Андроиде то, что отлично работает на 2.2, почему-то уже не работает на 4.
Клавиатура также доставляла немало проблем.Анимация с Андроида 2.2, в четвёрке, была в серые полосы.
А тот, который мы сделали на четверку, тупо затормозил на второй.
А ведь был бы третий Андроид, и ни то, ни другое на нем не работало бы.
В Android-браузере он вёл себя так, как хотел: мог закрываться при входе в поле, а мог оставаться на старом при переходе на новое поле.
Нам пришлось с этим бороться — и снова с помощью нативного кода.
Пришлось немало повозиться с решением таких мелких задач.
Тем более, что для нативной разработки есть хотя бы документация, а здесь всего нужно было добиваться экспериментальным путем, то есть путем научных исследований.
Эксперименты, однако, завершились вполне благополучно: первая версия УБАНКА представляла собой портированное на Android HTML-приложение.
Однако на этом славная история этого проекта заканчивается.
Работа за столом
Конечно, перед УБАНКом как сервисом мобильных платежей стояла задача присутствовать на всех основных смартфонах.Поэтому параллельно мы сделали версии для iOS и Windows Phone. Здесь мы повторили уже пройденный путь.
В каждом случае около 10% кода пришлось переписать, чтобы обеспечить собственное шифрование.
А также разобраться с различными недочетами, появившимися при портировании.
Эта прекрасная работа так и не увидела свет. Когда наши маркетологи это посмотрели, то сразу вырубили без лишних сантиментов.
И, в целом, сделали абсолютно правильно.
Как вы знаете, iOS — это высокоунифицированная среда.
Пользователи iPhone уже привыкли к стандартным элементам дизайна.
И переделать внешний вид нашего веб-приложения так, чтобы оно адекватно выглядело на iOS, оказалось практически невозможно.
Хотя мы пытались.
Но все же было ясно, что здесь что-то не так.
О Windows Phone с ее плиточным интерфейсом и говорить нечего.
Также мы предприняли попытку выпустить приложение для Simbian — Nokia тогда была актуальна.
Но оказалось, что Simbian не предоставляет возможности шифрования в собственном коде.
Мы просто не смогли обеспечить на нем должной степени безопасности.
В итоге мы в УБАНКе пришли к неизбежному решению: серьезная кроссплатформенная разработка на HTML для мобильных платформ — полная утопия.
Портирование проходит не так безболезненно и легко, как хотелось бы, если перед вашим приложением стоят действительно серьезные задачи.
А особенности дизайна каждой платформы не позволяют продукту отлично выглядеть на всех устройствах, имея одинаковый внешний вид интерфейса.
Ни один человек не является островом
Теперь все наши сервисы, которые мы выкатили полгода назад, — это полностью нативные приложения.Означает ли это, что HTML5 следует отправить на свалку истории? Не думайте.
Мне кажется, у каждого инструмента есть свои преимущества – нужно только правильно его использовать.
Основываясь на своем опыте, я бы сказал, что HTML отлично подходит для прототипирования.
Это дает возможность практически мгновенно увидеть, как все будет работать.
Для быстрого старта HTML — хороший инструмент. Но использовать ее как основную технологию компании не стоит, потому что портированное приложение всегда будет хуже нативного — как в работе, так и по внешнему виду.Сравните: первую полнофункциональную HTML-версию я сделал за два месяца.
Разработка нативных приложений для iOS, Android и Windows Phone заняла около года работы целой команды программистов, численность которой за это время варьировалась от двух до семи человек на разных этапах.
Если вы прямо сейчас разрабатываете мобильное приложение на HTML и столкнулись с какой-то проблемой, напишите в комментариях.
Возможно я смогу вам помочь, так как уже искал способ решения той же проблемы.
Никаких подсказок тогда в Интернете я не нашел — разобрался сам.
И теперь я буду рад ими поделиться.
Теги: #Android #iOS #кроссплатформенная разработка #phonegap #Bada #Разработка для iOS #Разработка для Android
-
Универсальный Android-Планшет
19 Oct, 24 -
Расширение Функционала Штатной Аудиосистемы
19 Oct, 24 -
Бесплатный Vpn От Thepiratebay
19 Oct, 24 -
Микроблоги На Mail.ru Набирают Популярность
19 Oct, 24 -
Вконтакте И Одноклассники.
19 Oct, 24 -
Как Вы Реализуете Пагинацию На Своих Сайтах?
19 Oct, 24 -
Как Получить Хороший Текст За 200 Рублей
19 Oct, 24 -
Массовые Фильтрующие Материалы
19 Oct, 24