Uygulamamı iOS'tan Android'e taşıyorum: ne bilmem gerekiyor? [kapalı]


15

Hangi tuzaklardan kaçınmalıyım?

  • Objective-C geliştiricileri hangi Java dili paradigmalarını sürekli yanlış anlıyor? Java'da program yapmayı öğrendim, ama yıllardır Objective-C'den başka hiçbir şey yapmadım.
  • Tasarım kalıpları Android ve iOS arasında nasıl farklı?
  • Geçişi kendiniz yaptıysanız, Android'in hangi bölümleri sizi şaşırttı veya öğrenmeniz gerekenden daha uzun sürdü?
  • Eclipse Android için en iyi OS X IDE mi?

Kayıt için, benim app UIKit ve Vakfı çok güçlü bir şekilde bağlıdır, bu yüzden "taşıma" sözcüğü yanlış bir isim olabilir; Aslında Android için tamamen yeniden yazacağım. Yeniden kod kullanımı yok. Ayrıca, bunu Android öğrenmek için yapıyorum, bu yüzden limanda başarısız olmayı ve bir kısayol almak yerine Android'i öğrenmeyi tercih ederim.


Biraz arka plan olarak, bu soru Stackoverflow'da gördüğüm soru türleri tarafından soruldu. Obj-C yazmaya çalışırken ne kadar aptalca hatalar yaparak birisinin arka planının (C # veya Java) ne olduğunu sık sık söyleyebilirsiniz. Java geliştiricilerinin gözlerini devirmesini ve "Aptalca Objective-C geliştiricileri, hiç öğrenmeyecekler mi?"


2
Is Eclipse the best OS X IDE for Android?Evet, denedim son ADB netbeans üzerinde iyi çalışmadı. Eclipse önerilen IDE'dir.
Keyo

@Keyo: Eh? Bir buçuk yıl önce Netbeans üzerinde denediğimde oldukça iyi çalıştı. Şüphesiz o zaman içinde daha iyi olur mu?
TheLQ

@ Nassign'ın bir cevap olarak yorumuna yanıt olarak: Stackoverflow'da yayınlamış olsaydım kesinlikle çok daha fazla cevap alırdım, ancak Programcılar'a göz atarken, buraya taşınan bu tür soruların birçoğu var gibi görünüyor. Bu forum için daha uygun olsaydı, orada sorabilirim.
kubi

Eğer yığın akışına yerleştirirseniz daha fazla cevap alacağınızı düşünüyorum.
Nassign

1
@kubi Burası sormak için iyi bir yer ve bu sitenin amacına uygun: Umarım bazı cevaplar alırım, kendimle ilgileniyorum.

Yanıtlar:


11

İOS'tan Android'e bir uygulama taşıyorum, bağlantı noktasını yapmak için birlikte çalıştığım bir başkasının uygulaması ama hiç de az değil.

Öncelikle, kullanıcı tabanlarına cihazlarıyla etkileşimin önemli ölçüde farklı yollarının öğretildiğini söyleyebilirim. Bunların çoğu, uygulamaların gerçek tasarımından ve cihazların işlevlerinden kaynaklanmaktadır.

Bazı genel şeyler:

  • Android cihazlarda manzara çok gerekli
  • Android uygulamaları, aktif olarak kullanılmadıklarında çalışmaya devam etme eğilimindedir, bu nedenle ağ sorunları, gps vb.İçin bunu düşünmeniz gerekir.
  • Cihaz Segmentasyonu, tonlarca android cihaz ve ekran çözünürlüğü var, burası göreceli düzenler ve dokuz yama görüntüleri çok kullanışlı.

Pek çok insanın başlangıçta düşünmediği büyük bir tane, Your UI can not be exactly the same on both devicesbenzer olabilir, ancak bir iPhone kullanıcı arayüzünü bir Android Cihaza taşımak çok iyi sonuç vermeyecek.

Bazı nedenler:

  • Uzun dokunma içerik menüleri
  • Menü açılır pencereleri
  • Farklı çözünürlüklere ve en boy oranlarına neden olan cihaz segmentasyonu
  • Çalışmak için aynı kontroller değil

Arka uç gerçekten büyük bir anlaşma değil, çünkü çoğu sadece birlikte çalıştığınız şeyin ana kısmını Java ve Android SDK'ya uyguluyor. En büyük sorunlarım, kullanıcının beklediği şeylerden ve kullanıcı arayüzü davranışından ve farklılıklarından kaynaklanıyor, bazen daha iyi, bazen daha kötü. Gerçekten sadece uygulamanızın ne yaptığına bağlıdır.

DÜZENLE

Sorularınızın gerçek kısımlarına cevap vermediğimi fark ettim, işte gidiyor (en azından en iyi çekimim)

Obj-C geliştiricilerinin yanlış anladığı herhangi bir büyük dil paradigması olduğunu söyleyemem, Java'nın OOP perspektifinden yapmasını istediğim şeyi elde etmek için muhtemelen daha basit olduğunu söyleyebilirim. (Sadece gerçekten .NET ve Java ile çalıştığımı ve sadece yeterli Obj-C'yi bildiğimi söylemeliyim).

Eclipse'i kesinlikle kullanırdım, bir süre IntellijIdea kullanmaktan yoruldum ve sadece bazı şeyleri yapmayı denemek için bana birçok sorun verdi.


"Manzara gerekli" dediğinde portreye ek olarak mı kastediyorsun? Uygulamam iOS'ta arka planda yalnızca birkaç şey yapıyor, arka planda herhangi bir şey yapmam gerekmiyorsa arka planda çalışmayı devre dışı bırakmam gerekir mi?
Kubi

@kubi yea portreye ek olarak, çünkü iyi bir cihaz seti, kullanıldığında cihazı yatay hale getiren donanım klavyelerine sahiptir. Arka planda, bir kullanıcı uygulamaları değiştirdiğinde uygulamanın çalışmaya devam etmesidir.
msarchet

+1 (veya daha fazla): "iPhone kullanıcı arayüzünü bir Android Cihaza taşımak çok işe yaramaz." Bu doğrudur: aslında mevcut lib farklı olduğu için kullanıcı arayüzü oldukça farklı olabilir.
Dan Rosenstark

IntelliJ Idea benim için Android geliştirme için harika çalışıyor. Sevdim.
Alexander Babaev

3

[bu cevap bir tür karışıklık ya da ranttır. Onu silecektim ama ilginç olabileceğini düşündüm: Silmem gerekirse yorumlar yoluyla bana bildirin].

Android'de çalışmıyorum ancak Java ve iOS'ta (Obj-C ile) çalışıyorum. Java geliştirme konusunda gerçekten farklı olan tek şey, bir IDE'nin ne kadar yardımcı olabileceğidir (insanlar size bir IDE kullanmamanızı söyleyecektir, bu da aynı şeyi tamamen farklı bir şekilde ele alır: ancak birkaç kişi bunu Java ile tavsiye eder) . XCode genellikle en basit sözdizimi hatalarını (dilin yapısı nedeniyle sanırım) DOĞRUDAN bile tespit edemez. Java'da ise IDE, onsuz olduğundan daha hızlı hareket etmenizi sağlayabilir. Ayrıca, çağrı cientini programlama ve SONRA yöntemi yazma gibi gerçekten harika şeyler yapabilirsiniz. Eclipse'de, örneğin,

blah.doIt(firstObj, secondObj);

ve firstObjve secondObjolan Stringdurumlar, IDE bana sig bir yöntem yapma olanağını verecektir "public void doIt (Dize firstObj, dize secondObj)." Bu gerçekten harika ve buzdağının sadece görünen kısmı: IDE senin arkadaşın. IntelliJ'in daha da soğuk olabileceğini duydum (denemelerimde olmasa da).

Bu cevapta bir tuzak var mı? Belki de: IDE'yi düşünmek Obj-C ve Java'da aynı rolü oynar. Java'da IDE, kendiniz yapmak inanılmaz zor şeyler yapabilir. Otomatik yeniden düzenleme, Java'nın şekli nedeniyle, XCode'lardan 100 kat daha güçlü. Bu, bazı tasarım sorularını daha sonraya erteleyebileceğiniz anlamına gelir.


Bu konuda düşüncelerimin çoğu AppCode sayesinde değişti. Bu harika. Yine de, aynı adlı şeyleri ayırt edemez, ancak kesinlikle sizin için çok fazla iş yapar.
Dan Rosenstark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.