Я переношу свій додаток з iOS на Android: що мені потрібно знати? [зачинено]


15

Яких підводних каменів слід уникати?

  • Які парадигми мови Java розробники Objective-C постійно неправильно розуміють? Я навчився програмувати на Java, але вже багато років не працював ні в чому, крім Objective-C.
  • Чим моделі дизайну відрізняються між Android та iOS?
  • Якщо ви самі здійснили перехід, то які частини Android вас збентежили чи зайняли більше часу, ніж це повинно було?
  • Є Eclipse найкращим OS X IDE для Android?

Для запису мій додаток дуже сильно пов'язаний з UIKit та Foundation, тому слово "перенос" може бути помилковим; Я фактично повністю переписую це для Android. Відсутнє повторне використання коду. Крім того, я роблю це для того, щоб вивчити Android, тому я вважаю за краще провалитися на порту та вивчити Android, ніж брати ярлик.


Як дещо передумови, це питання підказали типи питань, які я бачу в Stackoverflow. Часто ви можете сказати, яким був чийсь фон (C # або Java), які дурні помилки вони роблять, коли намагаються написати Obj-C. Я хотів би уникнути помилок, через які розробники Java скачують очі і кажуть: "Розробники Silly Objective-C, вони ніколи не навчаться?"


2
Is Eclipse the best OS X IDE for Android?Так, ADT не працював добре на Netbeans востаннє, що я спробував. Eclipse - рекомендований IDE.
Кейо

@Keyo: А? Коли я спробував це на Netbeans рік-півтора тому, він працював досить добре. Невже за цей час це стане краще?
TheLQ

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

Я думаю, ви отримали б більше відповідей, якби розмістити його в stackoverflow.
Нассінь

1
@kubi Це прекрасне місце, щоб задати це питання і відповідає цілі цього веб-сайту: сподіваюся, ви отримаєте кілька відповідей, я сам зацікавлений.

Відповіді:


11

Я переношу додаток з iOS на Android, я працюю над чужим додатком, щоб зробити порт, але не менше.

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

Деякі загальні речі:

  • Пейзаж дуже потрібен на пристроях Android
  • Програми Android, як правило, продовжують працювати, коли вони активно не використовуються, тому вам потрібно думати про це щодо проблем із мережею, GPS та ін.
  • Сегментація пристроїв, є багато андроїд-пристроїв та роздільної здатності екрана, саме тут відносні макети та дев'ятипаткові зображення дуже зручні.

Великий, про який багато людей спочатку не замислюються Your UI can not be exactly the same on both devices, впевнений, що він може бути схожим, але перенесення інтерфейсу iPhone на пристрій Android не вийде дуже добре.

Деякі причини:

  • Контекстні меню з довгим дотиком
  • Спливаючі меню
  • Сегментація пристрою, що викликає різні роздільні здатності та співвідношення сторін
  • Не ті ж елементи управління, з якими можна працювати

Задній кінець насправді не є великою справою, оскільки більшість із них - це лише реалізація основної частини того, з чим ви працювали, у Java та Android SDK. Мої найбільші проблеми виникають із того, що очікує Користувач, поведінки та відмінностей інтерфейсу користувача, іноді це краще, а іноді - гірше. Це дійсно просто залежить від того, що робить ваш додаток.

EDIT

Я щойно зрозумів, що не відповів на фактичні частини ваших запитань, тож ось (найкращий мій знімок принаймні)

Я б не сказав, що існують великі парадигми мови, які Obj-C розробники неправильно розуміють, я б сказав, що Java, ймовірно, простіше отримати те, що я хочу, щоб зробити це з точки зору OOP. (Я повинен сказати, що я дійсно працюю лише з .NET та Java і знаю лише достатньо Obj-C, щоб обходитися).

Я б точно користувався Eclipse, я втомився користуватися IntellijIdea деякий час, і це просто доставило мені багато проблем, намагаючись змусити його робити певні речі.


Коли ви говорите "Потрібен пейзаж", ви маєте на увазі крім портрета? У моєму додатку на iOS є лише декілька речей, чи потрібно явно відмовитися від роботи у фоновому режимі, якщо мені не потрібно нічого робити у фоновому режимі?
кубі

@kubi yea на додаток до портрету, тому що гарний набір пристроїв має апаратні клавіатури, які прилаштовують пристрій у ландшафт при використанні. На задньому плані це той факт, що додаток продовжує працювати, коли користувач перемикає програми.
msarchet

+1 (або більше): "перенесення інтерфейсу iPhone на пристрій Android не вийде дуже добре". Це правда: насправді користувальницький інтерфейс може бути зовсім іншим, оскільки наявна версія файлу інша.
Dan Rosenstark

IntelliJ Idea чудово підходить для розробки Android для мене. Любіть це.
Олександр Бабаєв

3

[ця відповідь є своєрідною маркучою чи зухвалою. Я збирався її видалити, але подумав, що це може бути цікаво: повідомте мене через коментарі, якщо я повинен її видалити, і я зроблю це].

Я не працюю на Android, але працюю в Java та iOS (з Obj-C). Єдине, що насправді відрізняється від розробки Java - це те, наскільки IDE може допомогти (люди скажуть вам не використовувати IDE, що зовсім інше сприймає те саме: мало хто радить це з Java, однак) . XCode, як правило, не в змозі навіть ПРАВИЛЬНО виявити найпростіші синтаксичні помилки (я думаю, через структуру мови). У Java, з іншого боку, IDE може змусити вас рухатися набагато швидше, ніж ви б без нього. Ви також можете зробити дуже цікаві речі, такі як програмування коефіцієнта виклику та ТОГО написання методу. Наприклад, у Eclipse, якщо я набираю текст

blah.doIt(firstObj, secondObj);

і firstObjі secondObjє Stringвипадками, середа дасть мені можливість зробити метод з сигами «громадський недійсний Doit (String firstObj, String secondObj).» Це дійсно круто, і лише верхівка айсберга: IDE - твій друг. Я чув, що IntelliJ може бути ще крутішим (хоча в моїх випробуваннях цього не було).

Чи є у цій відповіді підводний камінь? Можливо, це так: мислення IDE відіграє однакову роль у Obj-C та Java. У Java IDE може робити речі, які було б надзвичайно важко зробити самостійно. Автоматичний рефакторинг, через те, що Java, на 100 разів потужніший, ніж у XCode. Це означає, що ви можете відкласти деякі питання дизайну на потім.


Багато моїх думок з цього приводу змінилося завдяки AppCode. Це приголомшливо. Все-таки він не може розмежовувати одноіменні речі, але, безумовно, робить багато роботи для вас.
Дан Розенстарк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.