Bir geliştirici ticari Android Uygulamaları oluşturmak için neler bilmeli / adres bilmeli? [kapalı]


21

Android ve mobil geliştirme, heyecan verici bir gelişim alanıdır. Yeni bir disiplin olduğu için, bir android geliştiricisinin, yetenekler açısından ticari olarak sağlam uygulamalar geliştirmesi beklenirdi? Ben ve sanırım, teknolojideki birçok "noob" bilmek istediğim teknik beceriler ve Google tarafından sağlanan temel konuların ötesine geçen gerekli ileri konulara ilerleme. Orada bir sürü oldukça kullanışlı ama onun disiplin ne de düzenin kategoriler halinde düzenlenmiştir değil bilgilerinin.

Güncelleme : Buna bu şekilde bakın. Üst düzey bir geliştiriciyseniz ve belirli bir proje için Android'de hız kazanması için bir meslektaşı arkadaşınız olması gerekiyorsa (bu soruya bağlı olarak), ne yapardınız?


Ticari olarak "ticari kalite" mi, yoksa "para kazanmak" mı demek istiyorsunuz ve daha sonra bölgede bir iş bularak mı yoksa kendiniz için uygulamalar yazıp satarak mı demek istiyorsunuz?
Jon Hopkins,

@Jon. Bu alanların hiçbiri hariç değil. Ancak (bence), mevcut organizasyonlarını etkili bir şekilde cihazlara genişletmek isteyen benim gibi geliştiricilerin birçoğu var. Yani, bu aslında "para kazanmayı" veya yeni bir işe girmeyi içermiyor, sadece işletmeyi aç yöneticiler / Yol savaşçıları için işletmeyi genişletiyor.
angryITguy

Aradığım şey Android'deki üst düzey geliştiricilerin "ooh! İlk önce bunu okumalısınız, sonra bunu HTTP için ya da bunun için Arayüz tasarımına ve bu 2D / 3D çizmek için ..." anlarına sahip olmak. Bunu yansıtacak şekilde sorumu güncelledim.
angryITguy

Yanıtlar:


16

Bu sorunun birkaç yönü var:

Teknik açıdan "Nasıl?"

Ustalaşmak için artı bir kaç "sahip olmak güzel" teknolojiler vardır.

  1. Birincisi Java . Android SDK, tüm uygulamaların Java ile yazılmış olduğu varsayımına dayanmaktadır . Her ne kadar tartışmalı olarak .net'te ( monodroid bakınız ) geliştirilebilecek bazı üçüncü taraf çözümler olsa da , temelde işletim sistemi Linux'tur .

  2. İkinci tutulması . Etrafında çok sayıda 3. Parti SDK olmasına rağmen, ADT’den bazı yetenekler , Intellij veya Netbeans’da olsa da , Google’ın çabaları resmen yalnızca şu anda tutulmaya odaklanmıştır.

Düzenleme: Ocak 2016 itibariyle Google, resmi IDE'si olarak Android Studio’yu resmi olarak desteklemektedir.

Android mimarisinde, biraz pozlamanın her zaman yardımcı olacağı birkaç yapı taşı var:

  1. SQLite

  2. Genel video ve ses akışı kavramları, codec bileşenleri. OpenCore için (android.media).

  3. OpenGL çizimi.

  4. REST tabanlı Web servisleri, XML veya JSON.

  5. Yerli Kod geliştirme için ARM mimarisine ilişkin kavramlar.

Artı, benim kristal kase okuma Android geliştiricileri de kendi Linux biliyorum ve Google Java ve birlikte yerine geçen o terkeden geçireceği günü dillerinde yetkin olmalıdır halindeyken ya da (bira bir yere sahip onların "görebilirsiniz bazı diğer şeyler Native Client " girişimini tarayıcı etki alanında). Google, Dalvik'i tamamlamak için standart JNI mekanizmasını kullanarak c ve C ++ için bir NDK (Yerel Geliştirme Kiti) yayımladı.

Ticari açıdan "Ne?" Yi cevaplamak.

Android geliştiricileri elbette Android kullanıcıları olmalıdır. Ancak, sadece standart cep telefonu kullanıcıları değil, aynı zamanda tablet kullanıcıları. Aslında bir İşçi tutumunu benimsemeleri gerekir - daima kendilerine "Telefonum, tabletim ya da henüz piyasada olmayan bir tüketici-elektronik-elektronik aleti ile bunu nasıl daha iyi yapabilirim?" Diye sormaları gerekir.

Henüz pazar lideri olmayan, mutlaka hareketlilikle (veya en yakın pizza nerede? '' Uygulaması) sıkıcı olmayla ilgili olmayan pek çok android uygulaması vardır. İşte kişisel olarak aklımdan çıkaramadığım birkaç tane (daha fazla zamana kadar ;-).

  1. Çocuğunuza çizmeyi ve okumayı öğretin.

  2. yabancı dil öğrenmek için Flashcards.

  3. UK-FreeSat TV rehberi + uzaktan kumanda.

  4. seninkiler (yemek tarifleri ... vb.)


Cevabını beğendim, SQLLite, Web servisleri / REST / JSON ve OpenGL için kullandığın linkleri verebilir misin?
angryITguy

12

Dürüst olmak gerekirse, sadece Google’a gitmeniz ve biraz araştırma yapmanız gerektiğini düşünüyorum.

İşte bulduğum bazı ilginç bağlantılar. Bu da iyi bir başlangıç ​​noktası olabilir.

Tartıştığınız Google dokümantasyonuna ek olarak başka birçok kişi var.

Umarım bu sizi başlatmak, istediğiniz ayrıntıları bulmak!

İyi şanslar


merhaba, bu aptalca üzgünüm ama ben burada yeniyim! Bu neden oylanacak? Sormamın sebebi, kimsenin bu soruyu cevaplamadığını fark etmemdir ve bazen (sanırım yine de) uzağa gitmen ve cevabını kendin çözmen gerek. Bazı temel başlangıç ​​noktalarında önerdiğim şey buydu, peki yanlış olan ne?

Negatif karşı koymak için + 1. Ayrıca bazı iyi bağlantılar verir :)
Darren Young

@Darren Young - teşekkürler, ama neden oy kullanmada olabileceği ile ilgilenmiştim. Bu yüzden siteyi daha iyi kullanabilirim ama +1 her zaman beklerim!

@Digger. Bu bilgi için teşekkürler. Bu zaten bulmayı başardığım giriş seviyesi şeyler. Daha üst düzey geliştiricilerin girip bu cevabı biraz daha ileri götüreceğini umuyordum. +1
angryITguy

@giulio - teşekkürler, aradığınız bilgiyi bulacağınızı umuyorum.

5

Google’ın Resmi Geliştirici Kılavuzu

Uygulamanızın bir Android uygulamasının görünümü ve hissiyle tutarlı olması için en iyi uygulamaları ve yönergeleri içeren Google’ın Android için geliştirdiği kılavuzuna göz atacağım.


Teşekkürler. Google SDK ve cihaz geliştirme kılavuzunu zaten keşfettim ( developer.android.com/guide/index.html ). Ancak, ticari sınıf uygulamalarının geliştirilmesi ve konuşlandırılması için eksik olduğunu buldum.
angryITguy

3

Bakacağım iki şey. Bunlardan biri uygulamalar oluşturmak için Elma tasarım kuralları. Sorunun Android Uygulamaları ile ilgili olduğunu biliyorum ama genel prensipler geçerli ve bir masaüstü uygulaması tasarım perspektifinden oldukça farklı olan bir 'App' tasarım tarzında düşünmenizi sağlıyor.

Ayrıca, bir javascript / web dev türü ortamdan iPhone, iPad ve Android'de yerel koda kod yerleştirmenizi sağlayan bir araç olan Appcelerator Titanium'a bir göz atardım. Hızlı bir şekilde küçük uygulamalar yapmak için kullanışlı bir yol buldum. Mevcut olan tüm yerel işlevleri gösteren ve adından da anlaşılacağı gibi, 'Kitchen Sink' örneğini indirebilirsiniz. Definitley bunu başlatmak için bir yer olarak tavsiye ederim.


Teşekkürler Titanyum'a bakıyorlar. Yanıtladığımın cevapta aradığım konusunda yardımcı olması için soruyu güncelledim.
angryITguy

2

Yeni mobil geliştiricilerde, gerekli programlama dilleri ile temel beceriler ve SDK araçlarının ve kütüphanelerinin (roket bilimi olmayan ... 14 yaşındakilerin uygulamalar geliştirdiği) bilgileri sonrasında eksik olan 3 şeyi buluyorum.

  1. Kısıtlı ortamlar için geliştirme. İşlemci, bellek, ekran pikselleri ve kullanılabilir pil gücü mobil cihazlarda daha kısıtlayıcı. Bazı programcılar hızlı ve küçük programlamaya hiç maruz kalmamışlardır. 5kW güç ve soğutma özellikli bir rafa sahipken sorunları çözebileceğiniz gibi düşünemezsiniz, vb. Mevcut. Eski zamanlayıcıların 1kHz işlemcideki harika oyunları kodlamak için kullandıkları bazı hileleri 48kB ile yeniden öğrenin Hafızanın Belki bir Arduino veya diğer küçük kontrol cihazlarına kodlama pratiği yapın.

  2. UI aşinalık. Bir kullanıcı genellikle mobil cihazıyla masaüstü sistemlerinden farklı şekillerde etkileşim kurar. Bir tane taşı. Belki birkaç model. Onları kullan. Çok sayıda uygulama kullanın ve eleştirin (özellikleri değil) ne kadar kolay kullandıklarını, kötü aydınlatma koşullarında, zıplayan araçlarda, vb. Kullanımı. Çeşitli mobil HIG'leri okuyun ve tekrar okuyun. Kullanıcıların kodladığınız belirli UI platformu hakkında neyi sevip neyi sevmediğini bilin.

  3. Tuhaf tanıdıklık. Bazı araçlar ve kütüphaneler yenidir ve "tuhaflıklar" vardır. Sorunlar ve çözümler için geliştirici kartlarını okuyun, böylece diğer geliştiricilerin zilyonlarının birbirine karıştığı aynı hatayı yaparken takılıp kalmazsınız. Donanım, API'ler veya uygulama dağıtım modellerinin izin vermediği şeylerin nasıl yapılacağı hakkında stackoverflow hakkında çok fazla soru görüyorum. Tüm şirketler iPhone App Store için imkansız olanı denemek için zamanlarını boşa harcıyorlar.


ilgi çekici .. bu konuları kapsayan sitelere referans verebilir misiniz?
angryITguy

1

Juniors'ı bu şekilde Manner'da eğitmiştim.

Adım 1: Onlardan Android pazarında ücretsiz bir Uygulama görmelerini ve API demolarını da görmelerini istiyorum çünkü onlar da bazı fikirleri kapabilecekler. ( Http://developer.android.com/resources/samples/ApiDemos/index.html ) ve ayrıca http://www.androidpeople.com/

Örnek için: Android için IBNLive uygulaması Bu uygulamayı gördüklerinde, bunların mümkün olduğu konusunda kaba bir fikir edinebilirler, bunun gibi neden ağlayamıyor / kullanamıyoruz, tasarlayamıyor veya kontrol edemiyoruz?

Adım 2: Umutlarını Arttıktan Sonra, Varolan Uygulamayı Görerek, Google'ın yanı sıra Android için İncil görevi gören ve tanıdığı Android geliştirici Kılavuzunu da arayabilirler.

Örnek için: Juniors, Genişletilebilir Liste Görünümü ve Push Bildirimleri hakkında bir Fikir aldı, sonra aradı, bu şeyleri nasıl yapabiliriz, sonra Push Bildirimi için bulurlar, Cloud 2 Aygıt Mesajlaşmasını kullanabiliriz, sonra bunun hakkında çalıştılar ve yaptılar. Mükemmel bir şekilde.


0

Tekniklerden çok daha önemli (ki zaten öğrenilebilir ve çok da zor olmamalıdır) ne yapacağını, kimin için ve yeterince satış yapıp yapamayacağını bilmek. Bu son bölüm, iOS'un aksine, Android'de hala bir sorun.

Bu yüzden, android gelişimini öğrenmeye başlamadan önce, neye ulaşmak istediğinizi, nasıl başaracağınızı ve bunun gerçekten sürdürülebilir olup olmadığının net bir resmini oluşturun.

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.