Estou portando meu aplicativo do iOS para o Android: o que preciso saber? [fechadas]

15

Que armadilhas devo evitar?

  • Quais paradigmas da linguagem Java os desenvolvedores do Objective-C interpretam de forma consistente? Aprendi a programar em Java, mas não trabalho em nada além do Objective-C há anos.
  • Como os padrões de design são diferentes entre Android e iOS?
  • Se você mesmo fez a transição, quais partes do Android o confundiram ou levaram mais tempo para aprender do que deveriam?
  • O Eclipse é o melhor IDE do OS X para Android?

Para o registro, meu aplicativo está strongmente ligado ao UIKit e ao Foundation, então a palavra "porting" pode ser um equívoco; Na verdade, vou reescrever completamente para o Android. Nenhuma reutilização de código. Além disso, estou fazendo isso para aprender o Android, então prefiro falhar na porta e aprender Android do que tomar um atalho.

Como pano de fundo, essa pergunta foi solicitada pelos tipos de perguntas que vejo no Stackoverflow. Freqüentemente você pode dizer qual é o background de alguém (C # ou Java) pelos erros bobos que eles cometem quando tentam escrever Obj-C. Eu gostaria de evitar os tipos de erros que fazem os desenvolvedores de Java rolarem os olhos e dizerem: "Desenvolvedores do Silly Objective-C, eles nunca aprenderão?"

    
por kubi 17.01.2011 / 03:51
fonte

2 respostas

11

Estou portando um aplicativo do iOS para o Android, é o aplicativo de outra pessoa com o qual estou trabalhando para fazer a porta, mas não obstante.

Primeiramente, eu diria que as bases de usuários aprenderam maneiras drasticamente diferentes de interagir com seus dispositivos. Muito disso vem do design atual dos aplicativos, bem como das maneiras como os dispositivos funcionam.

Algumas coisas gerais:

  • Paisagem é praticamente necessária em dispositivos Android
  • Os apps para Android tendem a continuar em execução quando não estão sendo usados ativamente. Por isso, é necessário pensar sobre isso para problemas de rede, gps, etc.
  • Segmentação de dispositivos, há milhares de dispositivos Android e resoluções de tela, onde os layouts relativos e as imagens de nove patches são muito úteis.

Um grande problema que muitas pessoas inicialmente não pensam em Your UI can not be exactly the same on both devices , com certeza pode ser semelhante, mas portar uma interface do iPhone para um dispositivo Android não funcionará muito bem.

Algumas razões:

  • Menus de contexto de toque longo
  • pop-ups de menu
  • segmentação de dispositivo causando diferentes resoluções e proporções
  • Não são os mesmos controles para trabalhar com

O back-end realmente não é grande coisa, já que a maior parte é apenas implementar a maior parte do que você estava trabalhando no Java e no Android SDK. Meus maiores problemas vieram do que o usuário espera e do comportamento e das diferenças da interface, às vezes é melhor e às vezes é pior. Isso depende apenas do que seu aplicativo está fazendo.

EDITAR

Acabei de perceber que não respondi às partes reais das suas perguntas, então aqui vai (minha melhor foto, pelo menos)

Eu não diria que existem grandes paradigmas de linguagem que o Obj-C deva interpretar mal, eu diria que o Java é provavelmente mais simples de conseguir o que eu quero fazer do ponto de vista OOP. (Devo dizer que só trabalho com .NET e Java e só conheço o Obj-C suficiente).

Eu definitivamente usaria o Eclipse, eu me cansei usando o IntellijIdea por um tempo e isso me deu muitos problemas tentando fazê-lo fazer certas coisas.

    
por 17.01.2011 / 16:15
fonte
3

[esta resposta é uma espécie de divagar ou desabafar. Eu ia deletar, mas achei que poderia ser interessante: me avise via comentários se eu deveria deletá-lo e eu irei].

Eu não trabalho no Android, mas trabalho em Java e iOS (com Obj-C). A única coisa que é realmente diferente sobre o desenvolvimento Java é o quanto um IDE pode ajudar (as pessoas dirão a você para não usar um IDE, o que é uma abordagem totalmente diferente da mesma coisa: poucas pessoas aconselham isso com o Java, no entanto) . O XCode é geralmente incapaz de detectar CORRETAMENTE os erros de sintaxe mais simples (devido à estrutura da linguagem, eu acho). Em Java, por outro lado, o IDE pode fazer com que você se mova muito mais rápido do que seria sem ele. Você também pode fazer coisas muito legais, como programar o chamador e, então, escrever o método. No Eclipse, por exemplo, se eu digitar

blah.doIt(firstObj, secondObj);

e firstObj e secondObj são String instâncias, o IDE me dará a opção de criar um método com o sig "public void doIt (String firstObj, String secondObj)." Isso é muito legal, e apenas a ponta do iceberg: a IDE é sua amiga. Ouvi dizer que o IntelliJ pode ser ainda mais legal (embora em meus testes não tenha sido).

Existe uma armadilha nesta resposta? Talvez seja: pensando que o IDE desempenha o mesmo papel em Obj-C e Java. Em Java, o IDE pode fazer coisas incrivelmente difíceis de fazer sozinho. A refatoração automática, por causa do Java, é 100 vezes mais poderosa que a do XCode. Isso significa que você pode adiar algumas perguntas de design até mais tarde.

    
por 01.02.2011 / 08:35
fonte

Tags