Реальна ли кроссплатформенная разработка силами одного человека под iOs и Android?
Задались целью сделать мобильное приложение для своего стартапа и, т.к. людей с опытом мобильной разработки в команде нет, ищем человека на вакантное место. Приложение планируется как на Android, так и на iOs. Хочется максимальной универсальности, поэтому разработку планировали вести на Monotouch (как наиболее близкий «по духу», учитывая то, что основной проект написан на ASP.NET MVC), хотя это не обязательное условие. Прошерстив несколько сотен резюме на сайтах поиска работы обнаружили, что универсальных разработчиков не так много, а людей с опытом monotouch ещё меньше.
Собственно, вопрос, а скорее запрос ликбеза:
Имеет ли смысл искать одного человека? Под кроссплатформенной разработкой в данном случае я понимаю что ядро пишется на monotouch (или подобном, с условием компиляции в нативные бинарники), интерфейс — для каждой платформы отдельно. Насколько трудоёмко будет дописывать интерфейс под обе платформы? Приложение пока планируется как мобильная версия сайта, при этом вся логика будет на сервере. Критичны пуш-уведомления, скорость и удобство работы, поэтому чисто браузерное решение с адаптивной вёрсткой не подходит.
Или не стоит жадничать и лучше найти двух человек, что принесёт существенно более качественный и быстрый результат?
Может вам нанять хорошего Javascript разработчика и посадить его на Phonegap? Сказал бы более реальный вариант… Но он ничего хорошего не принесёт.
Как разработчик под Android скажу так: этому «универсальному человеку» будет очень не легко. Лучше наймите двух разработчиков под натив. Иначе получится бред. У Android и iOS есть свои мелкие забумбоны, и то как программы себя ведут, как выглядит графика, итд… Одному человеку на универсальной платформе такую работу сделать хорошо не под силу, так как либо он не знает как её сделать хорошо, либо он ни разу не разрабатывал прогармму для обеих платформ. И в конце концов получится iPhone программа мигрированная под Android либо карявая программа на iPhone.
Спасибо за развёрнутый ответ. Javascript-разработчики мы и сами хоть куда, у нас для смартфонов никто не писал. Про Phonegap раньше не слышал, посмотрю.
В целом склоняемся к варианту поиска двух человек под натив, но тут возникает второй вопрос: как исключить дублирование и общий код написать один раз. Подскажите, есть возможность написать, к примеру, на C++ библиотеку, которую сможем использовать и там и там? Разумеется, если не использовать в ней специфичные для платформы вещи, а описать, например, классы и интерфейсы, что уже большое дело.
Так как я не знаю специфику приложения, и её будующую архитектуру, могу посоветовать только: старайтесь перенести как можно вещей на сервер.
Поисковые запросы пусть сервер возвращает в JSON, и если нужна одинаковая информация для обеих платформ, пусть сервер её подготавливает и отдаёт.
Список на iOS и список на Android могут очень сильно отличатся а в некоторых случаях они вообще разные!
На обеих платформах разные способы работы с приложениями, поиск, поля ввода, и огромная уйма нюансов.
PS: Наша фирма делала прекраснейший проект, но он провалился из-за Phonegap под Android. Куча слабых телефонов и медленная обработка списков.
Нельзя сказать что это будет большая прога. Всё основное — на сервере, на мобилках только интерфейс.
По размеру приложение будет сравнимо с недавно описанным HabraCitizen.
С другой стороны есть все шансы вырасти до чего-то подобного приложению вконтакте или фейсбука. Но это, разумеется, не силами одного человека.
Однозначно искать двух натишников (если хотите качественный продукт).
То же касается и дизайна: у каждой платформы свой стиль, не стоит «универсалить», получится только хуже.
Вполне. Нужно только использовать один их фреймворков, который позволяет писать под все типы мобильных устройств (есть свои ограничения по нативным частям обычно), или пользоваться технологиями, которые работают на всех типах устройств (веб приложения в браузере, например).
Для .NET разработчиков появилась еще одна альтернатива - Ubiq Mobile фреймворк, который делает все в облаке а на устройстве - нативная часть, которая умеет с сервером общаться. Приложения работают под Android, iOS, Windows Phone и на старых Java телефонах и коммуникаторах. Быстрая кросс-платформенная .NET разработка. Не требует особых навыков разработки мобильных приложений. Есть готовые шаблоны и компоненты. Вводная статья и видео.