Предложения по разработке мобильных приложений - чистый iPhone SDK, Android SDK, Mono Touch или Titanium? - PullRequest
11 голосов
/ 16 апреля 2010

Я вхожу в мобильную разработку. Я работаю в основном в .NET, так как 1.0 вышел в бета-версии. До этого я был в основном парнем на C ++ и Delphi и все еще время от времени баловался C ++. Я немного занимаюсь веб-приложениями, поэтому я достаточно хорошо владею Javascript, JQuery и CSS. Я также сделал несколько приложений Java. Я начал веб-программирование на CGI и сейчас живу в основном в мире ASP.NET MVC.

Я пытаюсь решить, какую платформу / ОС и инструмент выбрать. Я обеспокоен размером рынка, доступным для моих приложений, а также рыночными навыками, которые я приобрету.

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

Вот варианты, которые я рассматриваю:

  1. Apple iPhone / iPad с использованием чистого Apple SDK (Objective-C)
  2. Apple iPhone / iPad с использованием Mono Touch (C #)
  3. Android с использованием чистого Android SDK (Java)
  4. Несколько платформ, использующих что-то вроде Titanium для создания собственных приложений из веб-технологий (HTML, CSS и Javascript)
  5. Несколько платформ, использующих веб-приложения HTML5, работающие в браузере (HTML, CSS и Javascript).

Какой вариант вы бы выбрали? У вас есть другое предложение? Какие плюсы и минусы?

Ответы [ 9 ]

9 голосов
/ 16 апреля 2010

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

  1. Стоит начать с наивысшего приоритета, так как его Buzz сейчас несколько дней.
  2. В соответствии с разделом 3.3.1 соглашения о разработке для iPhone OS 4, Apple будет разрешать только приложения, разработанные на C / C ++ и JAVA-скрипте. Я бы не советовал вам вкладывать свои усилия в C #.
  3. Это стоит того, и если вы хорошо разбираетесь в ядре JAVA, вы сможете продуктивно работать за несколько дней. На данном этапе Android может не иметь большой доли рынка, но мое личное мнение - ANDROID IS FUTURE.
  4. Моя точка № 2 также влияет на Titanium, но согласно их последнему твиту, они получили одобрение Apple. Я не знаком с земной реальностью.
  5. То же, что и точка № 2

Хорошо, если на этом этапе вы начнете концентрироваться на родной среде программирования для iPhone и Android. Тем не менее, если у вас есть время, вы можете инвестировать и в Blackberry RIM, поскольку у вас есть опыт работы с JAVA.

Добро пожаловать на смартфон разработчика. :)

Спасибо

Rajnikant

4 голосов
/ 16 апреля 2010

Если вы нацелены на iPhone / iPad, изменения в соглашении iPhone SDK, которые вступают в силу с iPhone OS 4.0, и новый SDK заявляют, что вы можете только отправлять приложения в App Store, которые были написаны в C / C ++ / Objective-C, или Javascript, если это веб-приложение.

Вы должны принять это во внимание, потому что слои совместимости, кросс-компиляторы, переводчики исходного кода выглядят так, как будто они будут запрещены в соответствии с новым соглашением, которое включает в себя такие вещи, как MonoTouch, Adobe Flash CS5, Phonegap и т. Д.

1 голос
/ 16 апреля 2010

Я просто хотел осветить точку зрения.Android v iPhone разработка.Позвольте мне быть искренним и сказать, что я не разработал для Android, но у меня есть для iPhone.Однако у нас в семье есть телефон на базе Android и iPhone, поэтому я могу говорить от имени обоих.

Что касается приложений, то я считаю, что приложения для iPhone гораздо проще и интереснее использовать(для конечного пользователя).Многие приложения для Android действительно дерьмовые.Нельзя сказать, что приложения для iPhone нет, но естественный интерфейс iPhone действительно несколько поддерживает их.В интерфейсе Android нет ничего особенного.Как конечный пользователь, я предпочитаю iPhone, и это должно иметь значение для разработчика, который пытается выбрать платформу.

В последнее время было много проблем с Apple в связи с изменением их ToS, и разработчики говорят, чтоони перейдут на Android.Я говорю - придерживайтесь iPhone, потому что iPad создает шум и является уникальной возможностью для вас.Как кто-то, кто использовал Titanium и Objective-C для создания приложений, я предлагаю вам использовать нативный набор инструментов.Обучение займет больше времени, но вы выучите правильные шаблоны проектирования, в отличие от Titanium, который даже не научит вас хорошим шаблонам JS, если честно (не очень много MVC там).

1 голос
/ 16 апреля 2010

Есть много вещей, чтобы рассмотреть. Сначала вы должны задать себе два вопроса:

  1. Какие платформы и какого типа пользователей вы хотите охватить.
  2. Вам нужно общаться с телефоном (GPS, SMS и т. Д.) Или вам нужны только некоторые базовые операции с данными и просмотры.

Если вам нужен доступ к функциям телефона, вам необходимо разработать приложение, которое будет работать на телефоне. Самая безопасная ставка здесь - JAVA, потому что она работает практически на всех телефонах. Но даже JAVA в последнее время не имеет таких универсальных кроссплатформенных инструментов. Apple наложила ограничения на iPhone и iPad, и MS также неясна для меня с последней версией Windows Phone 7.

Теперь, если вам нужно только отображать и манипулировать данными, HTML может быть правильным подходом. Он имеет преимущество кроссплатформенности, и у всех новых телефонов не будет проблем с отображением базового HTML. Javascript или более сложные формы все еще под вопросом. Тем не менее, для меня это будущее приложений, ориентированных на данные, так как веб-поддержка будет только улучшаться, включая javascipt. Что касается HTML5, я говорю, забудьте об этом. Потребуется время, чтобы стать широко распространенным на настольных компьютерах, а на телефонах - наверняка, потребуются годы.

Разработка нативных приложений для большого количества телефонов - непростая задача, требующая большой работы и, вероятно, большой команды. Итак, опять же, это зависит от задачи, которую вы должны сделать. Кроме того, если вы работаете с высококлассными бизнес-приложениями, то можете ориентироваться только на Blacberry, Windows Mobile и что-то еще. Я не знаю, насколько широко распространены iPhone и Android в мире бизнеса. Я думаю, не так много.

Это были бы мои ориентиры. Очевидно, что если вы можете, придерживайтесь веб-приложений.

1 голос
/ 16 апреля 2010

Вам лучше всего придерживаться веб-приложений, если вы хотите сделать их кроссплатформенными; основные операционные системы смартфонов - iPhone OS, Android и WebOS, по слухам, Blackberry OS - на очереди - все используют рендерер Webkit, и вам будет легче создавать вещи, которые не кажутся чужды каждой платформе, чем если бы вы Вы используете один из фреймворков для написания якобы кроссплатформенного кода. Это особенно касается тех случаев, когда вы принимаете во внимание недавние изменения Apple в их лицензионном соглашении SDK: такие инструменты, как MonoTouch и PhoneGap, могут больше не использоваться для доставки вещей в их App Store.

1 голос
/ 16 апреля 2010

Кроссплатформенные фреймворки, на которые вы должны смотреть:

PhoneGap QuickConnet

0 голосов
/ 21 апреля 2010

В одном из ваших комментариев вы утверждаете, что у вас есть Droid, он вам нравится и вы предпочитаете подход Google. В своем вопросе вы утверждаете, что являетесь разработчиком Java - конечно, вы всегда можете изучить Objective-C как разработчика Java, как я, но опять же, я полностью влюблен в iPhone. Похоже, вы полностью влюблены в Android, так что я бы сказал, приложите свою страсть к этому и создайте несколько потрясающих приложений для Android. Я не думаю, что вы бы хорошо справились с работой на iPhone, особенно без глубокого понимания или страсти к платформе.

0 голосов
/ 17 апреля 2010

Если вы решили пойти по маршруту Objective-C, подумайте о том, чтобы по-прежнему брать добычу в MonoTouch в качестве инструмента обучения, учитывая весь ваш опыт работы с C #.

Возможность сначала изучить фреймворк, а затем перейти на язык, значительно упрощает изучение. С monotouch вы сможете изучить все фреймворки iPhone, которые вам понадобятся (UIKit и т. Д.) На языке, с которым вы уже знакомы, а также привыкнуть к таким инструментам, как Interface Builder и некоторые из XCode.

Подняв Obj-C после того, как вы уже хорошо разберетесь в фреймворке, вам будет намного проще. Я делаю это прямо сейчас. И в зависимости от графика времени, луны и настроения Стива Джобса, у вас может получиться, что вам вообще не придется вообще ходить в Obj-C ..:)

0 голосов
/ 16 апреля 2010

Независимо от нового соглашения с разработчиком, последствия которого до сих пор неизвестны (например, люди предполагали, что PhoneGap и Appcellerator были мертвы, что не так ); у меня все еще лучше ориентироваться на Objective-C на платформе iPhone OS.

Дело в том, что в Какао много очень мощных фреймворков. Используя Objective-C, вы также учитесь думать, как дизайнеры фреймворка, что означает, что вам будет гораздо легче понять используемые шаблоны, а также со временем научиться предвидеть способности и имена в рамках фреймворка, если у вас будет более четкое понимание сверх стилистических стандартов в использовании.

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

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

Я не имею ничего против тех, кто использует другие языки, такие как Mono, на платформе, я просто думаю, что наиболее разумно использовать инструменты и языки, которые являются основными для любой платформы, на которую вы ориентируетесь. Если бы мне пришлось перейти на разработку Android, я бы в одно мгновение переключился на всю Java, а не искал мост Objective-C.

...