Site icon AppTractor

Хватит тянуть веб в мобайл

[pullquote align=right]


Курт Нельсон на Medium поделился интересным мнением о сочетании веб и мобайла
[/pullquote]

Меня все время спрашивают про разнообразные SDK, которые позволяют писать мобильное приложение без знания мобильных SDK. Мой ответ не изменился и не изменится в ближайшее время: если вы хотите написать мобильное приложение, вам нужно выучить мобильную платформу. PhoneGap, Cordova, Titanium, Ionic и др. — годны только для прототипирования. Все, что вы планируете выпустить в стор для пользователей, должно иметь нативный код, или это заметят даже не подкованные в техническом плане пользователи.

Но я уже знаю JavaScript/Angular и не хочу учить новые инструменты для мобайла!

Телефон в моем кармане — поразительная технология. Он может управлять космическим кораблем в его полете на Луну, но вместо этого я просматриваю на нем гифки с котами. Неважно, зачем я использую телефон сейчас, но я в любом случае жду от него, что батарейки хватит на целый день, что он уложится в мой тарифный план передачи данных и не исказит ни одну драгоценную гифку при показе. Это полярная противоположность веба, где у меня бесконечная батарейка на лэптопе, доступный вайфай и самый производительный GPU. Почему кто-то ждет, что технология, которая была разработана для одного, будет хорошо работать для другого? Почему разработчики думают, что можно не использовать другой набор инструментов для написания приложений для другой технологии? Как разработчики, мы не можем позволить нашим скиллам стагнировать. Представьте, что вы используете все те же фреймворки и языки, которыми пользовались, когда только учились программировать; тогда многие из нас все еще писали бы на VisualBasic или мучались со Swing от Java.

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

Используйте свои знания JavaScript/Angular как преимущество, MVC — это MVC, циклы — это циклы, а код пахнет одинаково, независимо от того, где его ни запусти.

Мои пользователи не разбираются в технике/им все равно/ просто хотят, чтобы это работало!

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

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

И не надо начинать про странное поведение кнопки «Назад» — пользователи Android ждут совсем другого от нее, чем пользователи iOS.

Мне нужно было запуститься на всех мобильных платформах вчера!

Нет, вам не нужно. Если у вас нет ресурсов Google для работы над продукта, вы даже не знаете, чего хотят ваши пользователи до того, как что-то выпущено и было использовано потребителями. Выберите одну из двух основных платформ, добейтесь на ней успеха, после этого запуск где-либо еще будет проще простого. Разработчикам нужно будет писать такое же приложение еще раз, но они уже будут знать проблемы предыдущего запуска. Если вы все еще уверены, что вам нужно запуститься на iOS и Android одновременно, убедитесь, что дизайн одной из платформ не просто скопирован из другой. Я заметил это через 10 секунд использования приложения, которое Джонни Айв впихнул в мой Nexus 6.

А как насчет react native?

React native — отдельная вещь. С веб-компонентами можно иметь два почти нативных приложения с общими UI виджетами. Плюс, React довольно требователен к тому, чтобы разработчик знал, как работают нативные разметки. Если вы хотите приключений, работайте с react, но помните, что все уровни модели, в конце концов, окажутся нативным кодом в любом случае.

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

Exit mobile version