Офер за 1 день в команду BetterMe (Frontend Hiring, JavaScript/React/Redux)
×Закрыть

Выбор платформы для разработок под мобильные устройства для стартапа

Всем доброго времени суток.

История такая. Активно работаем над документацией для стартапа. Естественно постоянно возникает куча вопросов и затыков. Но это, пожалуй, самый большей затык...

Стартап — некое бизнес приложение. Одно из направлений будет вестись под мобильные устройства. Скорее всего будет возможность менять (выбирать) скины для юзер интерфейса. И возможно будет простенький анимированный помощник. Изначально планируем Android и iOS. Чуть позже, возможно, Windows и подобное.

Есть два варианта разработки.
Первый (я так понимаю рекомендуется):
Под каждую мобильную платформу берется родная платформа для написания приложения. Под каждую платформу нанимаются 2-3 программиста. (Android — Android Studio, java; iOS — Xcode, Objective-C)
Адекватность такого варианта с моей точки зрения сомнительна. Получаем бессмысленное дублирование кода. А так же от 8 000 до 18 000 у.е. в месяц затрат на разработку, в зависимости от количества и уровня разработчиков и жлобства начальства (без учета затрат на рабочие места, лицензии, туалетную бумагу, печеньки и т.д.)

Второй:
Выбираем платформу которая позволяет вести разработку и компилировать сразу под несколько типов устройств (операционных систем). Таких платформ существует достаточно много. Скажем Microsoft Visual Studio, или на крайняк вечно умирающий Flash (шутка).
Этот вариант мне кажется более адекватным. И количество необходимых разработчиков снижается до 3-4 (затраты на зарплаты от 6 000 до 12 000 у.е. в месяц).

И так возникает два вопроса. Какой из двух вариантов лучше выбрать? И если второй, то какую платформу?

P.s. Выбор платформы хотелось бы сделать с учетом стандартной диаграммы «Цена, качество, скорость».
P.s.P.s. Буду рад ссылкам на подобные темы.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Если планируете серьёзный проект , то экономия бюджета в несколько килобаксах в месяц — это бессмысленно , потом в любом случае придете к нативу и получится дороже в итоге. Если проект простой , то можно подумать о кроссплатформе. Но появился новый и довольно интересный продукт в этом направлении. Я бы не сказал, что это полноценная кроссплатформа, скорее генерация натива , взгланите, советую поюзать software.intel.com/en-us/multi-os-engine

Среды, которые позволяют писать под несколько устройств что-то более или менее сложное, это фикция. Нет таких. В итоге все равно приходится под каждую платформу брать нативного разработчика и «после сборки выпиливать лобзиком с последующей обработкой напильником» :)

Вариант делать просто веб приложение — и пусть себе в браузере работает на чем попало. Если будет приносить прибыли — постепенно написать уже приложения под девайсы и со временем переключиться на них.

Странно, что еще никто не запостил сюда картинку на эту тему
www.commitstrip.com/...ile-650-Finalenglish3.jpg

Можно ли узнать, что такого делает ваше мобильное приложение для чего не хватает возможностей бразура на мобильном ?

Враховуючи, що 90%( цифра взята з голови, але підозрюю, не далека від істини) смартфонів завжди мають конект до інтернету, коли увімкнені, варто було б це враховувати.

Режим офлайн — это было так, с ходу. А так у нативного приложения действительно больше возможностей. Начиная с того, что элементарно нет зависимости от браузера. Зачем мне это? Не могу сказать.

Картинка — наглая ложь, видел я код юнити разработчиков с "unique code"© там половина кода if(android) {} else if(ios) {} else {} - и где после этого лабиринт? И это не вина программистов, нельзя скрестить бульдога с носорогом.

Там ведь не одно приложение разрабатывается, а несколько под разные платформы со своими особенностями лабиринт в том, что под разные платформы надо написать так, чтоб это не стало разным приложением на разных платформах. Визуальные эффекты под иос и андроид отличаются. Работа с вебвью если такая требуется тоже. Сгладить эти различия чем-то вроде ксамарина можно двумя путями либо выбросить все чего нет и там и там либо костылированием в запущенном случае либо написать свою обертку если различия не существенны. По итогу если приложение простое то мы и получаем хибарку, но быстро.

Можно ли узнать, что такого делает ваше мобильное приложение для чего не хватает возможностей бразура на мобильном ?

Оно должно быть дешевым в разработке и не тормозить.

З.Ы. В вашей картинке надо текст поменять местами, чтобы стало правдой.

Оно должно быть дешевым в разработке и не тормозить.
Сразу два не четких критерия «дешевизна» и «не тормозить»
З.Ы. В вашей картинке надо текст поменять местами, чтобы стало правдой.
То есть если педалить на нетиве то получим хибару на выходе и быстро, а замок получим через лабиринт боли и унижения со всякими ксамаринами ?
ПС
Сразу оговорюсь я не предлагал запилить на фонгапе или еще какой-то расширенной браузерной платформе, я больше интересовался, почему не просто мобильную версию сервиса.

Посмотрите доклад основателей блинк с последней ua mobile. Там как раз хорошо раскрыта эта тема.

Все зависит от того какое это будет Приложение... Но в любом случае советую начинать с одной платформы...если вы хотите выкатить бесплатную Бета версию, то лучше начинайте с андроида, если вы хотите пробовать сразу зайти на рынок и как платный контент, то лучше с ИОС, так как платёжная способность у пользователей Apple выше... Не советую кросплатформиную разработку — много подводных камней, может быть очень медленно и не качественно...Пример Ксамарин формс может подойти для маленьких приложений где нет кастомных штук а все по шаблону...

Я бы выбрал Xamarin.Forms. Нужен хотя бы один опытный специалист.

К сожалению не подойдёт если Приложение больше 6 скринов и есть кастом элементы. А если это опросник или блокнот то ксамарин ваш вариант...

В последнем нашем проекте на Forms несколько десятков скринов и немало кастомных элементов. Так что не соглашусь.

А можно название приложат, интересно сравнить... Не ради каких то негативных отзывов а ради сравнения...мы после форм перешли на ксамарин.андроид и ксамарин.ios.

У нас тоже сейчас такая генеральная линия. Но лично я с ней не согласен. :-)
Показывать/разглашать, к сожалению, не имею права.
Много, конечно, ручной работы и кастомных рендероров. Но в данном бизнес-приложении ничего платформо-специфического не было нужно и, более того, должен был быть реализован идентичный UI.

Но я не в коем случае не сомневаюсь в ваших словах, просто интересно посмотреть.

Почитав все предыдушие каменты хочу заметить несколько вещей:
1. В 2016 году даже буджетные смарты несут на борту многоядерные процы и минимум гиг оперативы.
2. По поводу Cordova — мне кажется много кто здесь писал пробывал кордову очень давно и не совсем в курсе как обстоят дела. iOS webView очень быстрый, для android — есть crosswalk (не думаю гто в еру интернета 25-30Мб размера приложения имеют большую роль). Если у девов ручки не из того места то они и веб-приложение сделают тупящим, тоже самое касается «натива» (в скобках так как натив ето уже инструкции для проца, а java в андроид все равно выполняется в jvm) — если руки кривоваты то тоже можно сделать тупящее или падающее приложение.
3. Конечно надо иметь понимание о платформах и как с ними работать, но для хорошего дева ето касается и для веба.
4. Если не надо кастомизаций по UI и нужен «натив» перформанс — ReactNative, Native Script ваш выбор.
5. Если надо темы в приложении — то на веб-технологиях ето делать легко и просто.
6. Если есть веб-приложение, особенно если оно на angular или react — Cordova.
7. Ionic 2 — даже при статусе беты очень быстр, а typeScript очень нравится любителям java или c# )))

Как то так, смысл в том что под большой спектр задач приложения на JS очень хорошо подходят, но конечно не под все.

По поводу Cordova — мне кажется много кто здесь писал пробывал кордову очень давно и не совсем в курсе как обстоят дела. iOS webView очень быстрый, для android — есть crosswalk (не думаю гто в еру интернета 25-30Мб размера приложения имеют большую роль). Если у девов ручки не из того места то они и веб-приложение сделают тупящим, тоже самое касается «натива» (в скобках так как натив ето уже инструкции для проца, а java в андроид все равно выполняется в jvm) — если руки кривоваты то тоже можно сделать тупящее или падающее приложение.

Сейчас идет проект на кородве. Ваша аргументация не имеет ничего общего с реальностью.

7. Ionic 2 — даже при статусе беты очень быстр, а typeScript очень нравится любителям java или c# )))

Угу, сделайте нормально работающий и не тормозящий инфинит скролл на пару миллионов элементов. Посмеемся вместе. Хотя нет, хотя бы на 100к элементов.

Думаю все сделано до нас
elements.polymer-project.org/...emo/scroll-threshold.html
Правда не тестил конкретное ваше количество — но суть в том что кол-во дом елементов не изменно — меняется тольк оконтент в них.

Если же в контексте Ionic у них есть своя реализация
ionicframework.com/...te-scroll/InfiniteScroll
Но стоит помнить что ето пока бета.

Сейчас идет проект на кородве. Ваша аргументация не имеет ничего общего с реальностью.

Хотелось бы реальные кейсы — а не нечто абстрактное как обычно.

Примеры в сторе есть, или, как обычно, все NDA?

Рабочий проект есть в сторе — но он не несет ценности в качестве примера в отрыве от платформы — дальше логин скрина посмотреть не удастся, но приведу линки на showcase флатформ:
showcase.ionicframework.com
facebook.github.io/...eact-native/showcase.html
www.nativescript.org/showcases

У кажной платформы есть свои success story)

даже приведенные showcase на android далеки от material как до Луны

Якщо вирішите брати кросплатформенний варінт то з неназваних можу запропонувать Qt Quick, або як екстримальний варіант Unity3D (там анымашкі і скіни будуть такі на скільки фантазії вистачить).

Особисто я б вам порадив би для початку на одній платформі максимально швидко і максимально дешево запустити прототип і на ньому відточувати бізнес логіку. Якщо ідея буде дійсно класна то і клієнт буде, буде кліент то можна і розкручуватись на повну з натівною розробкою під кожну платформу, а якщо не взлитить то ризики будуть мінімальні. Більше того в багатоьох якраз проблема в тому що своїми силами невдається реалізувати все задумане або користувачі сприймають щось не так як планувалось і на єтапі маленького дешевого прототипу це легше виправити.

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

Девелоперы охреневали от особенностей регистрации пушей в каждой из осей
Аххах, это точно, особенно пуши, не работающие, но не бросающие никаких ошибок :D счастливого дебага :D
Следующим шагом, я так понимаю, будет тупо отказ от приложения вообще
Хей-хей, куда торопиться?! Есть еще фонгап, а там через полгодика еще какая-нить контора пофиксит принципиальный недостаток существующих кросплатформеров. Шоу должно продолжаться!

Как уже написали ниже, баги и ограничения кросплатформа вытянут из вас все сэкономленные деньги. Разрабатывать одновременно Android и iOS — очень распостраненная ситуация и это нормально. Так что ответ однозначен.

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

Ага. И ключи от квартиры, где деньги лежат. )))
Простое бизнес приложение. Кнопки, таблицы и графики.

Ага. И ключи от квартиры, где деньги лежат. )))
Lol))
Я вот как раз сижу и жду пока кто то идею на милион подкинет)) А вы взяли и не признались)) Как дальше жить?)))
Успехов Вам, с
Простое бизнес приложение.

Мы писали приложение с использованием Cordova + AngularJS + Ionic. Два года. Лично я считаю это лучшей связкой (пока с Unity не знаком, на авторитетное мнение не претендую).
Но вы потратите немного (раза так в 2-3) больше денег, чем планируете из-за постоянной потери времени на костылирование, дебаггинг и выяснение чей глюк: ангулара, ионика, плагина или кордовы.. Это будет непрерывная борьба.
Нет, конечно: можно сделать красивое, быстрое приложение- визитку. Но чуть дальше, и — Вы «попали». Если Вам кажется, что iOS разработчик стоит дорого, то Вы ошибаетесь. Он сделает Ваше типичное приложение намного быстрее (использовав стандартные фреймворки), чем два JS девелопера.
Прототип cordova+angular+ionic будет готов быстрее — это бесспорно. Но потом «начнется»...
PS И не тратьте время на всякие Air, студии, phonegap и прочих «присосавшихся». WebStormа и XCode c Eclipse достаточно. Поверьте. Про винфон — в самую последнюю очередь. Не окупится.

Про винфон — в самую последнюю очередь. Не окупится.
винфон можно даже не планировать.

На текущий момент винфон — это UWP, а значит будет работать на телефонах, планшетах, десктопе, иксбоксах и хололенсах...

ADOBE AIR, baby ;)

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

Именно так. «Удочка», на которую попадаются не имевшие ранее опыта мобильной разработки команды — что Xamarin избавит от знания особенностей мобильной платформы. Не избавит. Подобная надежда была на Xamarin.Forms, но я лично пока бы не использовал его в production.

Согласен. Тот же Xamarin.Forms подойдет для прототипа, но только если прототип потом выкинут, а так он только увеличит сложность разработки за счет не предсказуемого поведения и багов

А Вы уже изучили свою целевую аудиторию? Какой процент кастомер к какой платформе тяготеет?

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

Целевую аудиторию, к сожалению, изучили. Потому и собираемся делать сменные скины. А документацию с превью планируем закончить в сентябре.

Если вам для прототипа, попробуйте Adobe AIR
Из его достоинств: зрелая среда разработки, большое количество решений для серверсайда, программисты относительно не дорогие(что ценно для стартапа) и если что эйр не может, всегда можно написать расширение на нативном языке.

Спасибо, но нет. Превью я еще подумаю, может и на as3 напишу. Но только из-за возможности делать анимации. Но прототип — нет.

Та цих ANEs вже досить багато, щоб покрити 95% потреб.

Этот вариант мне кажется более адекватным. И количество необходимых разработчиков снижается до 3-4 (затраты на зарплаты от 6 000 до 12 000 у.е. в месяц).
На поделках вроде титаниума вы затратите минимум в 2 раза больше времени на разработку, и если в приложении больше 3 скринов и есть бизнес-логика в итоге все равно придётся переписать из-за багов и особенностей платформ
Выбираем платформу которая позволяет вести разработку и компилировать сразу под несколько типов устройств (операционных систем)
В качестве MVP покатит. Потом начнутся тормоза, проблемы с плагинами, странные баги и прочие радости жизни. И если продукт взлетит — возможно придется все переписать с 0 на нейтив. К сожалению, гибридные приложения еще не на том уровне, на котором хотелось бы. Говорю по личному опыту.

Кроилово ведет к попадалову ©

Надо понимать, что даже с Xamarin вам нужно нанимать по 1-2 программиста хорошо умеющих писать iOS/Android приложения на родных языках, и добавляется еще хороший c# разработчик без которого будет намного сложнее.

Лучше не экономить если финансирование позволяет. Заработаете потом на хорошо работающем продукте.

Все популярные приложения(не игровые) сейчас нативные. Тормоза ui, большой размер приложения, поддержка только топовых смартфонов(только они нормально тянут эти безобразия) — пользователи вам не простят. Уж лучше пишите мобильную версию вашего сервиса в виде сайта с поддержкой Mobile Accelerated Pages

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

Если мобильная версия сайта есть, то тогда делать кросс платформенное приложение не стоит, код превратиться в серию if(android){} else if(ios) {} else {} что при более менее сложной бизнес логике станет неподдерживаемым уже через пол года. Если ресурсы ограничены, начинайте с иос, а если взлетит, то тогда начинайте делать андроид.

Есть два варианта разработки.
Первый (я так понимаю рекомендуется):
Под каждую мобильную платформу берется родная платформа для написания приложения.
....
Адекватность такого варианта с моей точки зрения сомнительна.

странно получается: «рекомендуется» не адекватный с Вашей точки зрения вариант. Как такое может быть?
Или Вы хотите чтобы вас уговорили на УГ типа Phonegap/Xamarin/Titanium ?

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

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

А в сторону phonegap и прочего не думали? Или react native, он хорош)

+1, хотя зависит от сложности задачи. Мы как-то писали пруф оф концепт нового проекта; с плагинами фонгапа для блютуса ЛЕ промучались месяца два, после этого плюнули на айфоны и за оставшиеся две недели написали апп для андроида (для пруфа хватило).
Писали бы сразу нейтив — успели бы и си вспомнить для айфона (джава у меня тоже не основной язык).
На фонгапе при этом для того же проекта написали подпроект — сканер билетов с QR-кодами.

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

люди пишут, что замарин побыстрее будет
ru.ego-cms.com/xamarin-vs-phonegap

Ну это как бы вообще технически две очень разные платформы. PhoneGap — это, по сути, обёрнутый в нативное приложение браузер, в то время, как Xamarin либо компилирует C# в нативный код (iOS), либо выполняет в виртуальной машине .NET (Android)

виртуальной машине .NET (Android)
JVM , не .Net.

При работе Xamarin Android приложения, две ВМ (Android и Mono .Net) работают рядом и общаются через ACW (Android Callable Wrapper автосгенеренный java класс) со стороны Java и MCW (Managed Callable Wrapper c# обертка) со стороны Mono .Net

Третий вариант: пишем приложение под одну платформу (не важно какую). Запускаемся в каком-то регионе — Новая Зеландия, Австралия и тд. Набиваем шишки, исправляем проблемы. Делаем настоящий запуск в США и по другим рынкам. Если все хорошо, развиваем платформу дальше. Потом берем и пишем приложение под вторую платформу.

Обычно бюджет — 1-2 человека (дизайнер, разработчик) и три-четыре месяца. И где-то на шаге запуска в США или раньше мы понимаем, что продукт не взлетел, и на вторую платформу бабла можно и не тратить, все довольны, кроме тех, кто решил, что бизнес на основе приложений для телефона в 2016 году — это хорошая идея.

А если чудо случилось, то найти еще денег не проблема.

Не вариант. Разработка будет сразу под все платформы и максимальной локализацией. А набивание шишек мы планируем делать другим способом.

А, тогда смотрите, что у вас есть в плане доступных разработчиков.

1. Если есть дотнетчики, то берите Xamarin — из всех них это самое взрослое решение, много историй успеха, хороших отзывов и мало нареканий.
2. Если рубисты — то RubyMotion или Turbolinks
3. Если ни тех, ни других, то берите фронтендеров и React Native.

Есть еще варианты — например, Titanium или Phone Gap / Ionic, — но там часты проблемы с андроидной частью: анимации тормозят, UI «тупит» и т.д. Если есть опытные ребята, которые на этих технологиях уже что-то успешно делали, то можно рискнуть, но лучше уж тогда React Native.

Вам правильно посоветовали.
Задача стартапа — протестировать идею. Поэтому начинать надо с одной платформы и одного языка. Потом переделать раз 10, и когда найдёте рабочий вариант — выходить на новые рынки/платформы.

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

При чем тут

Microsoft Visual Studio
вообще не понятно, если имеется ввиду кросплатформенные варианты разработки то посмотрите на Ionic Framework, NativeScript, React Native

возможно имелось ввиду Xamarin?

Тем более что он сейчас бесполатен и входит в MSDN подписку.

Или Cordova. VS и в Кордову умеет

Ви ж і самі розумієте відповідь?)

Подписаться на комментарии