apa yang harus diketahui / alamat pengembang untuk membangun Aplikasi Android komersial? [Tutup]

21

Pengembangan Android dan seluler adalah bidang pengembangan yang menarik. Karena ini adalah disiplin baru, apa yang diharapkan dari pengembang android untuk membangun aplikasi yang kuat secara komersial dalam hal keterampilan? Masalah yang saya dan, saya pikir, banyak "noobs" lain dalam teknologi ingin tahu adalah bidang keterampilan teknis dan perkembangan ke topik lanjutan yang diperlukan yang melampaui dasar-dasar yang disediakan oleh Google. Ada banyak informasi yang cukup berguna tetapi tidak disusun dalam kategori disiplin atau ketertiban.

Pembaruan : Lihatlah dengan cara ini. Jika Anda seorang pengembang senior, dan perlu meningkatkan kecepatan rekan kerja di Android untuk proyek tertentu, (sesuai kebijakan Anda untuk pertanyaan ini), apa yang akan Anda lakukan?

angryITguy
sumber
Yang Anda maksud dengan komersial adalah "kualitas komersial" atau "untuk menghasilkan uang" dan jika nantinya yang Anda maksud adalah dengan mendapatkan pekerjaan di daerah atau dengan menulis dan menjual aplikasi untuk diri sendiri?
Jon Hopkins
@ Jon. Tidak termasuk area tersebut. Tapi (saya pikir), ada banyak pengembang di luar sana seperti saya yang ingin memperluas organisasi mereka saat ini secara efektif ke perangkat. Jadi, itu tidak benar-benar melibatkan "menghasilkan uang" atau mendapatkan pekerjaan baru, hanya memperluas perusahaan untuk para eksekutif yang haus informasi / pejuang Jalanan.
angryITguy
Apa yang saya cari adalah saran dari pengembang senior di Android yang memiliki "ooh! Anda harus membaca ini dulu, lalu ini untuk HTTP, atau ini untuk desain antarmuka yang menarik dan ini untuk menggambar 2D / 3D ..." saat. Saya telah memperbarui pertanyaan saya untuk mencerminkan hal ini.
angryITguy

Jawaban:

16

Ada beberapa sisi dari pertanyaan ini:

Dari sudut pandang teknis , menjawab "Bagaimana?"

Ada beberapa teknologi yang harus dikuasai ditambah sejumlah "nice to have".

  1. Nomor satu adalah Java . Android SDK didasarkan pada asumsi bahwa semua aplikasi ditulis dalam Java . Meskipun bisa dibilang ada beberapa solusi pihak ketiga yang muncul untuk dikembangkan di .net (lihat monodroid ), setelah semua, OS yang mendasarinya adalah Linux.

  2. Yang kedua adalah gerhana . Meskipun ada sejumlah SDK Pihak ke-3, beberapa atasan dari ADT, di Intellij , atau di Netbeans , upaya Google secara resmi hanya terfokus pada gerhana untuk saat ini.

Sunting: Per Januari 2016 Google secara resmi mendukung Android Studio sebagai IDE resminya.

Dalam arsitektur android, ada sejumlah blok bangunan yang sedikit eksposur akan selalu membantu:

  1. SQLite

  2. Pengertian umum streaming video dan audio, codec. Untuk OpenCore (android.media).

  3. Gambar OpenGL.

  4. Layanan Web berbasis REST, XML atau JSON.

  5. Pengertian yang berkaitan dengan arsitektur ARM untuk pengembangan Kode Asli.

Plus, membaca di mangkuk kristal saya, pengembang Android juga harus tahu Linux mereka dan mahir dalam bahasa asli untuk hari ketika Google membuang Java dan menggantinya dengan go atau beberapa hal lain yang mungkin mereka buat di suatu tempat (lihat inisiatif " Klien Asli " mereka) dalam domain browser). Google telah merilis NDK (Native Development Kit) untuk c dan C ++ menggunakan mekanisme JNI standar untuk melengkapi Dalvik.

Dari sudut pandang komersial , menjawab "Apa?".

Pengembang Android harus menjadi pengguna Android sendiri tentunya. Namun, tidak hanya pengguna ponsel standar tetapi juga pengguna tablet. Mereka seharusnya benar-benar mengambil sikap Jobsian - selalu bertanya pada diri sendiri, "Bagaimana saya bisa melakukan itu lebih baik dengan telepon saya, tablet saya atau alat elektronik konsumen yang belum ada di pasaran?".

Ada banyak aplikasi android yang belum memiliki pemimpin pasar, belum tentu terkait dengan mobilitas (atau aplikasi membosankan "di mana-adalah-terdekat-pizza?"). Berikut adalah beberapa yang saya tidak bisa lepaskan dari pikiran saya secara pribadi (sampai saya punya lebih banyak waktu ;-).

  1. ajari anak Anda menggambar dan membaca.

  2. flashcards untuk belajar bahasa asing.

  3. Panduan TV UK-FreeSat + kendali jarak jauh.

  4. milikmu di sini (resep masakan ... dll).

Alain Pannetier
sumber
Saya suka jawaban Anda, dapatkah Anda memberikan beberapa tautan yang Anda gunakan untuk SQLLite, Webservices / REST / JSON dan OpenGL?
angryITguy
12

Sejujurnya, saya pikir Anda hanya perlu Google dan melakukan riset.

Berikut adalah beberapa tautan menarik yang saya temukan, yang mungkin menawarkan titik awal yang baik.

Ada banyak lainnya selain dokumentasi Google yang Anda diskusikan.

Semoga ini akan membantu Anda memulai, menemukan detail yang Anda inginkan!

Semoga berhasil


sumber
hai, maaf kalau ini konyol tapi saya baru di sini! Mengapa ini ditolak? Alasan saya bertanya adalah karena saya perhatikan tidak ada orang lain yang menjawab pertanyaan ini dan kadang-kadang (saya pikir begitu) Anda hanya perlu pergi dan mencari jawabannya sendiri. Itulah yang saya sarankan dengan beberapa titik awal dasar, jadi apa yang salah dengan itu?
+1 untuk melawan yang negatif. Plus itu memberikan beberapa tautan yang bagus :)
Darren Young
@ Darren Young - terima kasih, tapi saya hanya tertarik mengapa itu bisa ditolak. Jadi saya bisa menggunakan situs lebih baik tetapi +1 selalu diterima!
@Digger. Terima kasih atas info itu. Ini adalah hal-hal entry level yang sudah berhasil saya temukan. Saya berharap bahwa pengembang yang lebih senior akan / akan melompat dan mengambil jawaban ini sedikit lebih jauh. +1
angryITguy
@giulio - terima kasih, harap Anda menemukan info yang Anda cari.
5

Panduan Pengembang Resmi Google

Saya akan melihat panduan pengembang Google untuk Android, yang mencakup praktik terbaik dan pedoman untuk membuat aplikasi Anda konsisten dengan tampilan dan nuansa aplikasi Android.

Ryan Hayes
sumber
Terima kasih. Saya telah menemukan Google SDK dan panduan pengembang ( developer.android.com/guide/index.html ). Tetapi menemukan bahwa ada banyak yang hilang untuk pengembangan dan penyebaran aplikasi kelas komersial.
angryITguy
3

Dua hal yang akan saya lihat. Salah satunya adalah pedoman desain Apel untuk membuat aplikasi. Saya tahu bahwa pertanyaannya adalah tentang Aplikasi Android tetapi prinsip-prinsip menyeluruh berlaku dan membuat Anda berpikir secara desain 'App', yang sebenarnya sangat berbeda dari perspektif desain aplikasi desktop.

Saya juga akan melihat Appcelerator Titanium yang merupakan alat yang memungkinkan Anda untuk port kode dari lingkungan tipe javascript / web dev ke kode asli pada iPhone, iPad dan Android. Saya telah menemukan cara yang berguna untuk membuat aplikasi kecil dengan cepat. Anda dapat mengunduh contoh 'Kitchen Sink' yang sesuai dengan namanya, menunjukkan semua fungsi asli yang tersedia. Saya akan merekomendasikan definitley ini sebagai tempat untuk memulai.

AlexC
sumber
Terima kasih telah melihat Titanium. Saya telah memperbarui pertanyaan untuk membantu responden dengan apa yang saya cari dalam jawaban.
angryITguy
2

Saya sering menemukan 3 hal yang hilang pada pengembang seluler baru, setelah keterampilan dasar dengan bahasa pemrograman yang diperlukan, dan pengetahuan tentang alat dan perpustakaan SDK (yang bukan ilmu roket ... Anak berusia 14 tahun dilaporkan telah mengembangkan aplikasi).

  1. Berkembang untuk lingkungan yang terbatas. CPU, memori, piksel tampilan, dan daya baterai yang tersedia semuanya jauh lebih membatasi pada perangkat seluler. Beberapa programmer tidak pernah terpapar pemrograman dengan cepat dan kecil. Anda tidak dapat berpikir dengan cara yang sama untuk menyelesaikan masalah seperti yang Anda bisa ketika Anda memiliki rak dengan daya 5kW dan pendinginan, dll. Pelajari kembali beberapa trik yang digunakan orang-orang tua untuk membuat kode permainan yang bagus pada CPU 1MHz dengan 48kB memori, atau semacamnya. Mungkin berlatih coding pada Arduino atau pengontrol kecil lainnya.

  2. Keakraban UI. Seorang pengguna biasanya berinteraksi dengan perangkat seluler mereka dengan cara yang berbeda dari sistem desktop. Bawa satu di sekitar. Mungkin beberapa model. Gunakan itu. Gunakan banyak aplikasi dan kritik (bukan fitur, tetapi) betapa mudahnya mereka digunakan, dalam pencahayaan yang buruk, dalam memantul kendaraan yang bergerak, dll. Baca dan baca kembali semua HIG seluler yang beragam. Ketahui apa yang disukai dan tidak disukai pengguna tentang platform UI tertentu yang Anda kodekan.

  3. Keakraban yang khas. Beberapa alat dan pustaka baru dan memiliki "kebiasaan". Baca papan pengembang untuk masalah dan solusi sehingga Anda tidak terjebak membuat kesalahan yang sama dengan zillions pengembang lain telah tersandung. Saya melihat terlalu banyak pertanyaan tentang stackoverflow tentang bagaimana melakukan hal-hal yang tidak diizinkan oleh perangkat keras, API, atau model distribusi aplikasi. Seluruh perusahaan telah membuang-buang waktu untuk mencoba melakukan hal yang tidak mungkin untuk iPhone App store.

hotpaw2
sumber
intestesting .. bisakah Anda memberikan referensi ke situs yang membahas topik tersebut?
angryITguy
1

Saya melatih junior saya dalam cara berikut ini.

Langkah 1: Saya meminta mereka untuk melihat beberapa Aplikasi gratis di pasar Android dan juga demo API karena mereka juga dapat mengambil beberapa ide. ( Http://developer.android.com/resources/samples/ApiDemos/index.html ) dan juga http://www.androidpeople.com/

Misalnya: Aplikasi IBNLive untuk Android Karena ketika mereka melihat aplikasi ini, mereka bisa mendapatkan gagasan kasar bahwa ini adalah hal yang mungkin, mengapa kita tidak dapat membuat / menggunakan, mendesain atau mengontrol atau fungsionalitas Seperti ini.

Langkah2: Setelah mereka mendapat Harapan, Dengan Melihat Aplikasi yang Ada, mereka dapat mencari Google serta Panduan pengembang Android, yang bertindak sebagai Alkitab untuk Android, dan kemudian mengetahuinya.

Misalnya: Junior saya mendapat ide, dari Tampilan Daftar yang Dapat Diperluas dan Pemberitahuan Push, kemudian mencari, bagaimana kita dapat melakukan hal-hal ini, kemudian mereka menemukan Pemberitahuan Push, kita dapat menggunakan Cloud 2 Device Messaging, kemudian mereka mempelajari tentang itu dan melakukannya dengan cara yang sangat baik.

Sankar Ganesh
sumber
0

Jauh lebih penting daripada teknis (yang bisa dipelajari dan tidak boleh terlalu sulit) adalah mengetahui apa yang harus dilakukan, untuk siapa, dan apakah Anda akan dapat menjualnya dengan cukup. Bagian terakhir itu masih semacam masalah di Android, berbeda dengan iOS.

Jadi, sebelum mulai mempelajari pengembangan android, bentuk gambaran yang jelas tentang apa yang ingin Anda capai, bagaimana mencapainya, dan apakah itu benar-benar berkelanjutan.

fzwo
sumber