Должен ли я портировать свое приложение Android на iPhone?

#iphone #android

#iPhone #Android

Вопрос:

Я разработал приложение для Android, и оно, наконец, работает хорошо, и благодаря всей помощи StackOverflow!!

Теперь меня просят заставить его работать на iPhone. Я смотрел на iPhone некоторое время назад, но не так давно.

Что все думают? Должен ли я потратить время на изучение Objective C и iPhone и портировать приложение или забыть об этом?

Есть ли какие-либо книги, содержащие перекрестные ссылки на функции, чтобы вы могли посмотреть, как сделать что-то в iPhone, что у вас уже есть на Android?

Комментарии:

1. Если вы не написали огромный фрагмент на C (Android NDK), тогда вы можете забыть о повторном использовании материала.

Ответ №1:

Исходя из моего школьного опыта, если вы уже смогли создать работающее приложение для смартфона хотя бы на одной мобильной ОС, такой как Android, не займет много времени, прежде чем вы сможете разобраться в objective C и материалах cocoa Framework. Единственная проблема в том, что вам, вероятно, потребуется лицензия разработчика Apple для использования XCode.

Итак, я бы сказал, дерзайте, поскольку вам тоже платят, а также вот ссылка на руководство по разработке iphone для разработчиков Android: http://integratingstuff.com/2011/02/27/starting-iphone-development-as-an-android-developer /

Ответ №2:

Вероятно, лучше нанять партнера, который разрабатывает для iOS, чем делать это самостоятельно.

Сосредоточьтесь на платформе и позвольте вашим продуктам работать для всех пользователей.

Ответ №3:

Если вы не используете фреймворк, поддерживающий как iOS, так и Android (что-то вроде Corona SDK), у вас не будет большого количества фактического кода, который можно будет перенести. Идеи, алгоритмы, логика, графика, дизайны и т.д. Будут перенесены просто отлично. Это самые сложные части (IMO) разработки программного обеспечения.

Objective C (язык, на котором пишутся приложения для iOS) не такой сложный для изучения, если вы уже знаете языки на основе C (например, Java). Есть несколько отличающихся концепций, но по большей части это не так уж плохо. Самая большая проблема при разработке на iOS — это покупка Mac. Вы можете программировать для Android на устройствах Windows или Linux, но приложения для iOS можно разрабатывать только на Apple. Если на арене Hacintosh не произошло чего-то, что позволяет разрабатывать iOS на других платформах, вам придется покупать новое оборудование. НО если у вас уже есть Mac, скачайте XCode и отправляйтесь в город!

Как сказал Haphazard, если в нем достаточно денег, чтобы оно стоило вашего времени, сделайте это.

Ответ №4:

Если вам платят, дерзайте! (Кроме того, это может стать отличным опытом обучения.)

Ответ №5:

Когда мне пришлось принимать такое же решение, я учитывал следующие критерии:

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

Если у вас есть какая-либо возможность, вы можете просмотреть похожие приложения и посмотреть, как они работают на двух платформах…

Удачи, что бы вы ни собирались делать…

Ответ №6:

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

Ответ №7:

К сожалению, вам придется либо переписать приложение с нуля для iOS, либо передать работу опытному разработчику iOS. Вы можете довольно легко перенести логику и вычисления в вашем приложении с Java на Objective C, но пользовательский интерфейс — это та область, где вы действительно не можете ничего повторно использовать (за исключением, возможно, значков), а пользовательский интерфейс, как правило, составляет большую часть большинства приложений.

Как разработчик Android, который портировал несколько моих приложений на iOS, я могу сказать, что этот переход является трудным. Во-первых, вам нужно купить iPhone и Mac (если у вас их еще нет), поскольку вы не сможете разрабатывать приложения для iOS без оборудования Apple. Во-вторых, вам нужно научиться использовать XCode и Objective C или Swift. И, в-третьих, поскольку XCode позволяет создавать пользовательский интерфейс ТОЛЬКО графически (в отличие от Android, который позволяет редактировать XML вручную), есть много скрытых вещей, которые могут заставить вас отклеиться. (ОБНОВЛЕНИЕ: использование нового подхода SwiftUI к дизайну пользовательского интерфейса действительно помогает с этим последним пунктом и, на мой взгляд, упрощает переход с Android на iOS).

Наконец, среды Apple и XCode кажутся довольно чуждыми тому, кто привык к Windows и Android Studio. Есть вещи, такие как клавиши Home и End, поведение которых совершенно отличается от Windows, что расстраивает. Также вы должны использовать комбинацию сочетаний клавиш и движений мыши, чтобы подключить элементы пользовательского интерфейса к вашему коду. Кроме того, есть большие неприятности, такие как всплывающая клавиатура на iOS, которая не удаляет содержимое автоматически, как это происходит с Android. Вероятно, это связано с тем, что Android — это ОС, предназначенная для нескольких размеров экрана, в то время как iOS предназначена для ограниченного числа конфигураций экрана, но это заставляет iOS чувствовать себя неполноценной и с ней сложнее работать с точки зрения разработчиков. (ОБНОВЛЕНИЕ: использование ScrollView в SwiftUI решает проблему скрытия клавиатуры).