cosa dovrebbe sapere uno sviluppatore / indirizzo per creare app Android commerciali? [chiuso]


21

Lo sviluppo Android e mobile è un'area di sviluppo entusiasmante. Trattandosi di una nuova disciplina, cosa ci si aspetterebbe da uno sviluppatore Android di creare applicazioni commercialmente solide in termini di competenze? Il problema che io e, credo, molti altri "sostenitori" della tecnologia vorremmo conoscere sono le aree delle competenze tecniche e la progressione verso gli argomenti avanzati richiesti che va oltre le basi fornite da Google. Ci sono molte informazioni che sono abbastanza utili ma non sono organizzate in categorie di disciplina o ordine.

Aggiornamento : guardalo in questo modo. Se sei uno sviluppatore senior e hai bisogno di un collega collega ad Android su un determinato progetto (a tua discrezione per questa domanda), cosa faresti?


Per commerciale intendi "qualità commerciale" o "fare soldi" e se in seguito intendi ottenere un lavoro nell'area o scrivere e vendere app per te?
Jon Hopkins,

@ Jon. Non escludendo nessuna di queste aree. Ma (penso), ci sono molti sviluppatori là fuori come me che vogliono estendere efficacemente la loro attuale organizzazione sui dispositivi. Quindi, ciò non implica in realtà "fare soldi" o ottenere un nuovo lavoro, semplicemente estendendo l'impresa a dirigenti affamati di informazioni / guerrieri della strada.
angryITguy,

Quello che sto cercando è il consiglio degli sviluppatori senior di Android che hanno il "ooh! Dovresti leggere prima questo e poi questo per HTTP, o questo per un design accattivante di interfaccia e questo per disegnare momenti 2D / 3D ...". Ho aggiornato la mia domanda per riflettere questo.
angryITguy,

Risposte:


16

Ci sono diverse sfaccettature a questa domanda:

Dal punto di vista tecnico , rispondendo al "Come?"

Ci sono diverse tecnologie da padroneggiare e un numero di "bello da avere".

  1. Il numero uno è Java . L'SDK di Android si basa sul presupposto che tutte le app siano scritte in Java . Anche se probabilmente ci sono alcune soluzioni emergenti di terze parti da sviluppare in .net (vedi monodroid ), dopo tutto, il sistema operativo sottostante è Linux.

  2. Il secondo è l' eclissi . Sebbene ci siano un numero di SDK di terze parti in giro, alcuni migliori di ADT, su Intellij o su Netbeans , gli sforzi di Google sono ufficialmente focalizzati solo sull'eclissi per ora.

Modifica: da gennaio 2016 Google supporta ufficialmente Android Studio come IDE ufficiale.

Nell'architettura Android, ci sono un certo numero di blocchi per i quali un po 'di esposizione sarà sempre utile:

  1. SQLite

  2. Nozioni generali di streaming video e audio, codec. Per OpenCore (android.media).

  3. Disegno OpenGL.

  4. Servizi Web basati su REST, XML o JSON.

  5. Nozioni relative all'architettura ARM per lo sviluppo del codice nativo.

Inoltre, leggendo nella mia ciotola di cristallo, gli sviluppatori Android dovrebbero anche conoscere il loro Linux ed essere competenti nelle lingue native per il giorno in cui Google abbandonerà Java e lo sostituirà con go o altre cose che potrebbero aver fatto da qualche parte (vedi la loro iniziativa " Native Client " nel dominio del browser). Google ha già rilasciato un NDK (Native Development Kit) per c e C ++ utilizzando il meccanismo JNI standard per integrare Dalvik.

Dal punto di vista commerciale , rispondendo al "Cosa?".

Gli sviluppatori Android dovrebbero ovviamente essere gli stessi utenti Android. Tuttavia, non solo gli utenti standard di telefoni cellulari, ma anche gli utenti di tablet. Dovrebbero effettivamente adottare un atteggiamento da Jobsiani , chiedendosi sempre "Come potrei farlo meglio con il mio telefono, il mio tablet o qualsiasi apparecchio di elettronica di consumo non ancora sul mercato?".

Esistono molte applicazioni Android che non hanno ancora un leader di mercato, non necessariamente legate alla mobilità (o alla solita noiosa app "dov'è la pizza più vicina?"). Eccone alcuni che non riesco a togliermi dalla testa personalmente (fino a quando non avrò più tempo ;-).

  1. insegna a tuo figlio a disegnare e leggere.

  2. flashcard per imparare le lingue straniere.

  3. Guida TV + telecomando UK-FreeSat.

  4. il tuo qui (ricette di cucina ... ecc.).


Mi piace la tua risposta, puoi fornire alcuni link che hai usato per SQLLite, Webservices / REST / JSON e OpenGL?
angryITguy

12

Ad essere sincero, penso che devi solo Google e fare qualche ricerca.

Ecco alcuni link interessanti che ho trovato, che possono offrire un buon punto di partenza.

Ce ne sono molti altri in aggiunta alla documentazione di Google che hai discusso.

Spero che questo ti inizi, trovando i dettagli che desideri!

In bocca al lupo


ciao, scusa se è sciocco ma sono nuovo qui! Perché questo dovrebbe essere votato verso il basso? Il motivo per cui lo chiedo è che non ho notato che nessun altro ha risposto a questa domanda e, a volte (penso di sì), devi solo andare via e capire tu stesso la risposta. Questo è tutto ciò che stavo suggerendo con alcuni punti di partenza di base, quindi cosa c'è che non va?

+1 per contrastare il negativo. Inoltre fornisce alcuni buoni collegamenti :)
Darren Young,

@Darren Young - grazie, ma ero solo interessato al perché potrebbe essere votato verso il basso. Quindi posso usare meglio il sito ma il +1 è sempre il benvenuto!

@Digger. Grazie per quelle informazioni. Questa è la roba entry level che sono già riuscito a trovare. Speravo che i programmatori più anziani sarebbero / sarebbero entrati e avrebbero portato questa risposta un po 'più in là. +1
angryITguy,

@giulio - grazie, spero che tu possa trovare le informazioni che stai cercando.


3

Due cose che vorrei guardare. Uno è Linee guida di progettazione di mele per la creazione di app. So che la domanda riguardava le app Android, ma i principi generali si applicano e ti fanno pensare in un modo di progettazione 'App', che in realtà è abbastanza diverso dal punto di vista della progettazione di app desktop.

Inoltre darei un'occhiata ad Appcelerator Titanium che è uno strumento che ti consente di trasferire il codice da un ambiente di tipo javascript / web dev al codice nativo su iPhone, iPad e Android. L'ho trovato un modo utile per creare rapidamente piccole app. Puoi scaricare l'esempio "Kitchen Sink" che, come suggerisce il nome, dimostra tutte le funzionalità native disponibili. Consiglierei sicuramente questo come punto di partenza.


Grazie ho visto Titanium. Ho aggiornato la domanda per aiutare i rispondenti con ciò che sto cercando in una risposta.
angryITguy,

2

Spesso trovo 3 cose mancanti nei nuovi sviluppatori mobili, dopo le competenze di base con i linguaggi di programmazione richiesti e la conoscenza degli strumenti e delle librerie SDK (che non sono scienza missilistica ... Secondo quanto riferito, i 14enni hanno sviluppato app).

  1. Sviluppando per ambienti limitati. CPU, memoria, pixel di visualizzazione e potenza della batteria disponibile sono molto più vincolanti per i dispositivi mobili. Alcuni programmatori non sono mai stati esposti alla programmazione veloce e minuscola. Non riesci proprio a pensare allo stesso modo per risolvere i problemi che puoi quando hai un rack con 5kW di potenza e raffreddamento disponibili, ecc. Riapprendi alcuni dei trucchi che i vecchi tempi usavano per codificare grandi giochi su una CPU da 1 MHz con 48kB di memoria, o alcuni di questi. Forse esercitati a programmare su un Arduino o un altro controller piccolo.

  2. Familiarità dell'interfaccia utente. Un utente in genere interagisce con il proprio dispositivo mobile in modi diversi dai sistemi desktop. Portane uno in giro. Forse diversi modelli. Usali. Usa molte app e critiche (non funzionalità, ma) quanto sono facili da usare, in condizioni di scarsa illuminazione, nel rimbalzare veicoli in movimento, ecc. Leggi e rileggi tutti i vari HIG mobili. Scopri cosa piace e cosa non piace agli utenti della particolare piattaforma UI per cui stai codificando.

  3. Familiarità strana. Alcuni strumenti e librerie sono nuovi e hanno "stranezze". Leggi le schede degli sviluppatori per problemi e soluzioni in modo da non rimanere bloccato facendo lo stesso errore su cui si sono imbattuti milioni di altri sviluppatori. Vedo troppe domande su StackOverflow su come fare cose che l'hardware, le API o i modelli di distribuzione delle app non consentono nemmeno. Intere aziende hanno perso tempo a cercare di fare l'impossibile per l'App Store di iPhone.


interessante ... puoi fornire riferimenti a siti che trattano questi argomenti?
angryITguy

1

Ho addestrato i miei Juniors in questo modo seguente.

Passaggio 1: chiedo loro di vedere alcune applicazioni gratuite nel mercato Android e anche le demo API perché sono anche loro possono prendere alcune idee. ( Http://developer.android.com/resources/samples/ApiDemos/index.html ) e anche http://www.androidpeople.com/

Ad esempio: l'app IBNLive per Android Perché quando vedono questa applicazione, possono avere un'idea approssimativa che queste sono cose possibili, perché non possiamo cerare / usare, progettare o controllare o funzionalità in questo modo.

Step2: Una volta ottenuta la speranza, vedendo l'applicazione esistente, possono cercare su Google e sulla Guida per gli sviluppatori Android, che fungono da Bibbia per Android, e sono venuti a conoscenza.

Ad esempio: My Juniors ha avuto un'idea, di Visualizzazione elenco espandibile e Notifiche push, quindi ha cercato, come possiamo fare queste cose, poi trovano per Notifiche push, possiamo usare Cloud 2 Device Messaging, quindi hanno studiato e fatto in modo eccellente.


0

Molto più importante dei tecnicismi (che possono essere appresi e comunque non dovrebbero essere troppo difficili) è sapere cosa fare, per chi e se si sarà in grado di venderne abbastanza. L'ultima parte è ancora un po 'un problema su Android, a differenza di iOS.

Quindi, prima di iniziare a imparare lo sviluppo Android, forma un quadro chiaro di ciò che vuoi ottenere, come raggiungerlo e se è effettivamente sostenibile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.