
David Quinlan è un ragazzo normale, con posti di lavoro al giorno e solo un po 'di esperienza di codifica. Ma lui e un amico ha vissuto il sogno piegato a gomito e una semplice applicazione iPhone in un weekend. Ecco come hanno fatto:
"Thai, insalata o ramen?" E 'ora di pranzo in un tipico Giovedi e ci colpisce che milioni di persone in tutto il mondo stanno meditando la stessa domanda. Questa domanda è il nostro avvio, facendo di noi una parte di migliaia di persone che volevano costruire un iPhone app per "quel".
Sono un ragazzo di prodotto e di marketing con alcune competenze di progettazione e codifica.
Roy è uno sviluppatore con alcuni esperti di business. Combinato, facciamo una grande squadra e si integrano reciprocamente le competenze bene, ma abbiamo solo iniziato a lavorare con Objective-C lo scorso anno, come molti altri che stanno sperimentando lo sviluppo iPhone. Abbiamo già costruito un app o due, per cui siamo a conoscenza della lingua e dei quadri. Tuttavia, come con tutti i nuovi progetti, di solito hanno a che fare una piccola ricerca per capire come affrontare le varie problematiche ... soprattutto in un mondo definito da 320 × 480 pixel.
Per lungo tempo, abbiamo giocato un po 'con l'idea di creare un'applicazione per il divertimento. Dopo aver scartato un paio di buone idee (perché erano troppo complessa o una rapida ricerca su App Store ha dimostrato che qualcun altro ha già bene), all'ora di pranzo ci terre su un semplice, un'idea divertente per aiutare le persone bloccato tra le decisioni.
Ma mentre la maggior parte vuole creare un grande app iPhone, il mio amico e io andare un passo oltre, fare un patto per completare il progetto entro un week-end o realisticamente, la nostra applicazione non si sarebbe mai completato.

Su un pezzo di carta, scarabocchi su due-tre wireframe e sviluppato uno schema per alcune schermate di base. Siamo noi a decidere su una applicazione che offre fino a tre scelte multiple. È possibile scrivere le vostre risposte, ad esempio, Thai, insalata o ramen e basta scegliere una scelta casuale per vedere la risposta alla vostra decisione. Decidiamo di utilizzare le carte da gioco, come il tema. Immediatamente, abbiamo il cerchio "deve avere" caratteristiche (priorità assoluta), allora il "come avere" caratteristiche (ultima priorità) e, infine, le caratteristiche che più bisogno di indagare. Lasciamo il pranzo a Giovedi compiti a casa con un po 'e un piano per ottenere insieme il Sabato.
I miei compiti in particolare di determinare l'aspetto, il tatto e l'interazione su ogni schermo. Roy ha bisogno di ricerca alcune delle caratteristiche di Xcode non abbiamo avuto la possibilità di giocare con ancora nel nostro "veri" posti di lavoro, soprattutto le animazioni e la randomizzazione.
Sabato mattina, ci incontriamo in un negozio locale di caffè che era Wi-Fi gratuito, far valere un grande tavolo in modo che possiamo siedono fianco a fianco e prendere la prima di molte tazze grandi di caffè. Poi possiamo creare una cartella condivisa Dropbox per questo progetto-un account base è gratuito e viene fornito con 2 GB di storage. Il Dropbox è importante perché ci permette di multitask per lo stesso progetto con qualsiasi / tutte le modifiche di sincronizzazione in tempo reale. Per i progetti più grandi, si può prendere in considerazione GitHub.
Ci fermiamo un profilo più dettagliato di quello che vogliamo compiere per la nostra applicazione, nonché wireframe di base. Dato che abbiamo solo un fine settimana per completare questo app, abbiamo deciso di concentrarsi solo sul "devono avere" caratteristiche. Uno sviluppatore può sempre rilasciare aggiornamenti funzione in una data successiva per includere il "bello avere" caratteristiche.
Schermo Going-by-schermo, si dettaglio gli elementi sulla pagina, trattamenti di stile, layout, tempi, ecc Abbiamo anche discutere che cosa Roy imparato a conoscere l'animazione del movimento flip della carta, poiché questa è stata una delle funzionalità di base del app. Abbiamo brevemente in rassegna i Quartz 2D e librerie Core Animation, dal momento che non avevamo fatto in precedenza un lavoro con quelli. Abbiamo anche discutere con un UIWebView per rendere l'animazione all'interno di CSS di WebKit. Infine, troviamo una soluzione semplice utilizzando UIViews standard e UIButtons. La classe UIView ha alcuni metodi della classe di animazione, e uno dei costruita nel transizioni è un effetto flip. Per quanto riguarda la randomizzazione, sapevamo maggior parte delle lingue fornisce una funzione random, e Objective-C non fa eccezione. Ai fini di questa applicazione, tutto ciò che voleva era un metodo semplice per randomizzare un array. Roy trovato un paio di esempi di questo, ma uno che spiccava era finita sul sito Dr. Touch. Egli descrive un approccio con il quale attuare un metodo di estensione della classe in modo da poter facilmente shuffle qualsiasi matrice.
Ci immergiamo nelle nostre rispettive MacBook Pro con un Borg-like concentrarci sulle nostre aree di competenza. I aprire Photoshop e cominciò a costruire schermi. La prima schermata è l'immagine di default. Questa è la schermata molto prima, quando le persone vedono l'applicazione si avvia e inizia a caricare. Applicazioni possono essere costruite sia in verticale o sul paesaggio. Se si sceglie di costruire la vostra applicazione in vista del paesaggio come il nostro, è ancora necessario per creare una immagine di default che visualizza in visualizzazione verticale. Semplicemente creare la vista del paesaggio e ruotare in senso orario o antiorario (a seconda se si desidera visualizzare il panorama a sinistra oa destra). Ora i carichi di immagini predefinito in visualizzazione verticale ma dal momento che le immagini si ruota, l'utente verrà svolta l'iPhone per visualizzare il panorama.
Ho poi passare il prossimo paio d'ore la creazione di composizioni, immagini di sfondo, bottoni, carta (fronte e retro) e la pagina info. Ho anche passare del tempo concentrandosi su l'icona app. Questo è ovviamente il "volto" della vostra applicazione, un distintivo d'onore, così ti vuoi mettere il pensiero attento in immagini icona. Ricordate, è necessario l'icona in entrambe le 57 × 57 e 512 × 512 dimensioni. Una volta completato, ho caricarlo al set in modo che Roy potrebbe iniziare a utilizzare gli elementi creativi.

Con il tempo ho sguardo indietro al laptop di Roy, ha creato un progetto Xcode nuovo ed è già giocando con il codice per animare le caselle verdi che flip su un clic. Mentre sta lavorando sul prototipo in iPhone Simulator, mi afferra il Info.plist file e modificare alcune impostazioni - rimuovere la barra di stato, il nome visualizzato app, rimuovere lucido da icona, ecc Abbiamo poi decide che è tempo per noi di aggiungere un po ' immagini reali al nostro prototipo. Abbiamo messo in l'immagine di sfondo, la fronte e retro delle carte e dei pulsanti di navigazione. Il posizionamento è spento (da un sacco), ma le carte un bell'aspetto ed è flipping senza intoppi. Facciamo qualche calcolo male, ma alla fine ottenere la distanza esatta e il posizionamento che vogliamo per ogni scheda. Noi giocare con i tempi del flip, impostare l'stati on / off per il pulsante di navigazione e ora si sente abbastanza bene.

Vedendo i pezzi si riuniscono in app mi dimostra che ci sono un paio di immagini che ha bisogno di fine tuning. I apportare modifiche come Roy inizia a lavorare sullo schermo la personalizzazione e lo schermo info. La personalizzazione dello schermo è il luogo che permette alle persone di tipo in tutto quello che vogliono mostrare il volto della carta. Ci limitiamo a 25 caratteri ... nulla di più e si scrive sopra / al di fuori della carta. Parliamo attraverso questo schermo di un po 'più in dettaglio. L'interazione in ogni campo, come gli atti della tastiera, e come si salva prima di tornare le carte. Spendiamo un po 'di tempo nel cablaggio Interface Builder esattamente come vogliamo questa pagina a guardare e agire. La pagina info è completamente facoltativo, ma ci piace farlo perché include ulteriori modi per raggiungerci.
Wow, sette ore e quattro zampe caffè grandi tardi, abbiamo fatto molto, ma c'è ancora molto altro da fare. Quello che abbiamo ora è un app che gli incendi up, viene visualizzata una schermata di caricamento di default; ottiene la gente a una schermata che mostra tre carte (retro della carta che mostra); possono selezionare qualsiasi / tutte le carte e le carte ribalta per mostrare la anteriore della carta, possono fare clic su un pulsante "Try Again" per ripristinare le carte, si può cliccare su un pulsante "Personalizza" che apre una nuova schermata, "Personalizza" schermata consente di immettere testo in 3 distinte campi con un massimo di 25 caratteri in ogni campo, e si può arrivare alla schermata Informazioni. Passiamo l'ultima ora del giorno insieme pulizia del codice e discutere di ciò che abbiamo lasciato a compiere domani.

Domenica scorsa, ci incontriamo in un altro caffè con connessione internet Wi-Fi. Primo caffè. Ci sentiamo come se fossimo circa l'80 per cento fare prima di poter iniziare a lavorare di nuovo. Il lavoro principale a sinistra per la giornata è il salvataggio del testo personalizzato, la visualizzazione del testo personalizzato sulla faccia della carta, e randomizing il testo. Avevamo idee funzionalità aggiuntive, ma abbiamo continuato a noi onesti, e ha mantenuto la scope creep al minimo. Un esempio di questo è stato il metodo per la memorizzazione / salvare il testo personalizzato su ciascuna delle tre carte. Roy potrebbe avere creato un database SQLite o utilizzati Core Data, ma l'approccio più semplice era quello di utilizzare il proprio costruito nel standardUserDefaults oggetto trovato nella classe NSUserDefaults. Utilizzando questo metodo memorizza i valori alle impostazioni bene per le nostre esigenze l'applicazione e ci fa risparmiare un sacco di tempo.

Mentre Roy sta lavorando su questi elementi, è una perfetta opportunità per me di preparare alcune delle cose che abbiamo bisogno per il giorno dopo. Quando si effettua un app ad App Store, non è un semplice upload di un file. Apple richiede le seguenti informazioni per ogni presentazione app: nome dell'applicazione, Application Descrizione, requisiti di periferiche, primaria e secondaria categoria, le sottocategorie, Copyright, App Rating, Parole chiave, SKU Number, Application URL, schermate, Marketing Descrizione, URL di supporto, supporto e-mail indirizzo, End User License Agreement, e Prezzi / Disponibilità.
Così, ho prep tutte le informazioni app presentazione, mentre Roy è occupato di codifica di distanza, in primo luogo la ricerca su App Store per applicazioni simili ed i loro nomi. Ci piace "Stuck?" E per fortuna nessun altro lo sta utilizzando, così andiamo con quel nome. Creo la descrizione app, aggiungere alcune parole chiave, impostare il prezzo e decidere dove vogliamo vendere questa applicazione (solo negli USA, in alcuni paesi o in tutto il mondo). Poi ho registrare un nome di dominio (stuckapp.com) da utilizzare per l'URL application / URL sostegno e collegato a un account Tumblr appena creato. Ho creato anche l'indirizzo e-mail richieste di supporto. Gli altri elementi di cui si vorrà preparare in anticipo sono: screenshot (fino a cinque), l'icona di un grande (512 × 512) e, se questa è la prima volta presentando un app, i certificati / profili di provisioning.
Le cose tendono a prendere più tempo del previsto, e anche se siamo praticamente finito con l'applicazione di Domenica pomeriggio presto, abbiamo ancora trascorrere un paio d'ore più tweaking e tutto ciò che la preparazione per la presentazione App Store di pulizia del codice e di fine tuning andiamo avanti. Passiamo la maggior parte della giornata su un computer spingere pixel, la formattazione, e garantendo i tempi e interazione con l'utente è stato esattamente come abbiamo entrambi voluto. Dopo quasi cinque ore di lavoro di Domenica, abbiamo l'applicazione che entrambi abbiamo immaginato. Si inizia test nel simulatore iPhone e sui dispositivi (sia iPhone e iPod touch) per la stabilità e funzionalità. Anche in questo caso, essendo una semplice applicazione, è stato facile e veloce test.
Dopo aver dimostrato la sua stabilità, abbiamo deciso di pubblicare Stuck? a App Store. Il mio primo tentativo di pubblicazione di un'altra applicazione da me ha preso due giorni, il tentativo, non riescono, Google, il tentativo, non riescono, Google più e così via, fino a che alla fine ha funzionato. Ma la seconda volta è stato molto più facile e più veloce. Abbiamo un copia / incolla tutto il testo preparato in precedenza e poi ha aggiunto gli screenshot e immagini. Tutto sommato, abbiamo caricato la nostra applicazione in circa 15 minuti. A questo punto, siamo entusiasti, stanchi e affamati, ma anche molto orgoglioso del fatto che abbiamo completato un app solida nel corso di un week-end in un coffee shop.

Abbiamo avuto le nostre dita incrociate che l'App Store approverebbe la nostra applicazione. E, stupiti come noi che avremmo potuto finire un app durante il fine settimana, la vera sorpresa è arrivata dopo che abbiamo presentato l'App Store. Abbiamo presentato l'applicazione di Domenica sera. E 'cambiato lo status di attesa di riesame, a In sintesi, il Lunedi. Martedì scorso, abbiamo ricevuto una e-mail informandoci che la nostra applicazione è pronto per la vendita. Approvato in due giorni! Che deve essere un record, soprattutto prima delle vacanze.
Soprattutto dopo aver parlato su come creare un app insieme per tanto tempo, come tante persone di leggere questo articolo, devo dire, la soddisfazione è immensa. Finalmente abbiamo fatto.

CONSIGLI PER LA COMPILAZIONE DI UN APP PER UN WEEKEND
1. Non è possibile farlo da soli. È possibile, ma non vorrei. Idealmente, si desidera collaborare con qualcuno con un diverso, insieme di competenze complementari. Partner con qualcuno che conosce e rispetta la tua area di competenza, ma è ancora più fiduciosi e informati sulle proprie competenze. Una buona comunicazione è implicato in uno sforzo di questo genere per cui dovrai passare attraverso periodi di domande fuoco rapida rimbalzare le idee a vicenda e quindi i periodi di silenzio, mentre si lavora su diversi compiti. C'è molto da fare e ottenere multitasking sarà fondamentale.
2. Multitask. Come suggerito sopra, lavorare con qualcuno che integra le vostre abilità vi permette di multitask. Cosa voglio dire? Ad esempio, all'inizio, una volta che si gratta un wireframe di una idea, una persona può iniziare la codifica - mettendo pulsanti segnaposto e blocca in posizione. Allo stesso tempo, l'altra persona in grado di creare composizioni e poi tagliate ogni elemento da utilizzare quando arrivano alla fase di destra. Inoltre, alla fine della coda del progetto, una persona può avvolgere il progetto e pulire il codice, mentre l'altro prepara tutte le immagini e la copia di marketing per il processo di presentazione App Store.
3. Fare almeno una cosa bene. Differenza della maggior parte delle applicazioni desktop o di un progetto web, dovete ricordare che la maggior parte buone applicazioni mobili soddisfare un bisogno che può venire ovunque, in qualsiasi momento. La tua idea app non deve essere complicato, ma buone applicazioni sembrano fare uno o più di queste cose anche:
- Risolve un problema; - è divertente; - Serve una specifica nicchia; - Impegna l'utente e / o - si avvale delle caratteristiche uniche di iPhone.
4. Fissare obiettivi e traguardi. Se il tuo obiettivo è la velocità di mercato, solo per fare esperienza, o per costruire l'applicazione Best Damn che fa (in bianco), chiaramente i vostri obiettivi. Inizialmente, vi aiuterà a concentrarsi sui settori che sono importanti / critiche per il successo. Esso aiuterà anche in seguito lungo la strada che dovete affrontare decisioni difficili su "must-have" caratteristiche e "come-to-have" caratteristiche. Ricorda che puoi sempre rilasciare aggiornamenti funzione così concentrarsi sulla "must-have" gli oggetti e fare tutto ciò che è necessario per rispondere a tale obiettivo.
5. Ottenere un account Dropbox. Per le piccole e medie progetti, non si può battere Dropbox. Esso consente di archiviare, condividere e sincronizzare i file con gli altri. Termina condivisione file avanti e indietro su una chiavetta USB. Ottenere un account Dropbox e la condivisione di file in tempo reale. Abbiamo abusato l'inferno del nostro libero, cartella condivisa Dropbox e ha funzionato senza problemi. Per i progetti più grandi, si potrebbe voler dare GitHub una prova.
6. Verifica. Verifica. Prova. Quando si vede il traguardo, è facile sorvolare sul passo importante dei test vostra applicazione. Prova nel tuo simulatore di iPhone, ma anche cercare di mettere le mani su un iPod touch e, naturalmente, su un iPhone. A seconda della complessità della vostra applicazione, si potrebbe desiderare di creare un piano di test per assicurarsi che tutti i casi d'uso e compiti funzionali sono coperti. L'ultima cosa che desidera è di avere un'applicazione su App Store, che si blocca o non funziona come previsto. Non hai mai può recuperare da tutte le ego-sconvolgente feedback.
7. Comprendere il processo di presentazione App Store. Apple fornisce un documento PDF in dettaglio al processo di invio. Ma quel documento è disponibile solo per gli sviluppatori registrati. Se ti sei già registrato, leggere attentamente il documento prima di iniziare il processo di upload. Vi darà una buona idea di ciò che è coinvolto, ma anche quello che dovrete preparare in anticipo. Apple fornisce anche alcuni consigli per la presentazione App Store e l'approvazione.
Origine
Gizmodo