
David Quinlan és un tipus normal, amb treball de dia i només una mica de codificació de l'experiència. Però ell i un amic viscut el somni i lloc fora una senzilla aplicació per l'iPhone en un cap de setmana. Heus aquí com ho van fer:
"Tailàndia, amanida o ramen?" És l'hora de dinar en un típic dijous i ens sembla que milions de persones a tot el món estan considerant la mateixa pregunta. Aquesta pregunta és la nostra plataforma de llançament, el que ens converteix part dels milers de persones que volien construir una aplicació per l'iPhone de "això".
Sóc un noi de comercialització de productes i amb alguns coneixements de disseny i codificació.
Roy és un desenvolupador amb algun coneixement dels negocis. Combinats, fem un gran equip i es complementen entre si i les habilitats, però només va començar a treballar amb Objective-C l'any passat, com molts altres que estan tractant a terme el desenvolupament de l'iPhone. Ja hem construït una aplicació o dues, així que estem familiaritzats amb el llenguatge i els marcs. No obstant això, com amb tots els nous projectes, en general ha de fer una petita investigació per saber com abordar els diferents reptes ... especialment en un món definit per 320 × 480 píxels.
Durant molt temps, hem jugat amb la idea de crear una aplicació per a la diversió. Després de descartar un parell de bones idees (perquè eren massa complicat o una recerca ràpida a la App Store va mostrar que algú més ja ho fa bé), terres de l'hora del dinar ens d'una idea simple diversió, per ajudar a persones atrapades entre les decisions.
Però mentre la majoria de la gent vol crear una gran aplicació per l'iPhone, el meu amic i jo fer un pas més, fent un pacte per acabar el projecte dins d'un cap de setmana-o realista, la nostra aplicació mai es completen.

En un full de paper, que gargotejar a terme dos-tres wireframes i elaborar un esbós d'algunes pantalles de base. Nosaltres vam decidir en una aplicació que ofereix fins a tres opcions múltiples. Vostè pot escriure les seves pròpies respostes, per exemple, tailandès, amanida o ramen i simplement tria una opció a l'atzar per veure la resposta a la seva decisió. Vam decidir utilitzar les cartes com a tema. Immediatament, el cercle "ha de tenir" característiques (prioritari), llavors el com "tenir" característiques (última prioritat), i finalment les característiques que necessitava més investigació. Sortim del menjar del dijous amb una poca preparació i un pla per reunir-se dissabte.
La meva tasca inclou la determinació de l'aparença, sensació i la interacció en cada pantalla. Roy necessita investigar algunes de les característiques de Xcode no hem tingut l'oportunitat de jugar amb el però, en els nostres llocs de treball "reals", sobretot les animacions i l'aleatorització.
En el matí de dissabte, ens reunim en una cafeteria local, que havia Wi-Fi, la reclamació d'una gran taula perquè puguem seure banda a banda i prendre la primera de moltes tasses grans de cafè. Després creem una carpeta compartida de Dropbox per a aquest projecte-un compte bàsica és gratuïta i ve amb 2 GB d'emmagatzematge. El Dropbox és important perquè ens permet realitzar múltiples tasques en el mateix projecte juntament amb algun o tots els canvis de la sincronització en temps real. Per a projectes de major envergadura, és possible que vulgui considerar GitHub.
Tirem una descripció més detallada del que volem aconseguir per a la nostra aplicació, així com wireframes de base. Atès que només tenim un cap de setmana per completar aquesta aplicació, ens decidim a centrar-se únicament en el "ha de tenir" característiques. Un desenvolupador sempre pot emetre actualitzacions de funcions en una data posterior per incloure el bé "per tenir" característiques.
Anant, pantalla per pantalla, es detallen els elements de la pàgina, els tractaments d'estil, disseny, horaris, etc També discutim el que Roy après sobre l'animació de moviment tapa de la targeta, ja que aquesta va ser una de les funcions bàsiques de l'aplicació. Es revisa breument el quars 2D i biblioteques Core Animation, ja que no havia fet cap treball amb ells. Podem fins i tot parlar amb un UIWebView per fer l'animació en CSS de WebKit. En última instància, ens trobem amb una solució senzilla utilitzant UIViews estàndard i UIButtons. La classe UIView té alguns mètodes de la classe d'animació, i una de les transicions es basa en un efecte "flip. Pel que fa a l'assignació a l'atzar, sabíem que la majoria dels llenguatges proporcionen una funció aleatòria, i Objective-C no és una excepció. Als efectes d'aquesta aplicació, l'únic que volia era un mètode simple per canviar aleatòriament una matriu. Roy vaig trobar un parell d'exemples d'això, però un que es va destacar va ser en el lloc web sobre el Dr Touch. Ell descriu un mètode que permetia aplicar un mètode d'extensió de classe d'aquesta manera pot barrejar qualsevol matriu.
Ens submergim en els nostres respectius MacBook Pro amb un enfocament Borg-com en el nostre propi àmbit de competència. Obro Photoshop i va començar pantalles edifici. La primera pantalla és la imatge per defecte. Aquest és el poble de pantalla molt veure quan l'aplicació s'inicia i comença a carregar. Aplicacions es poden construir en retrat o paisatge. Si opta per construir la seva aplicació en la vista horitzontal com el nostre, que encara necessita per crear una imatge predeterminada que es mostra en vista vertical. N'hi ha prou amb crear el seu punt de vista del paisatge i gira cap a la dreta o cap a l'esquerra (depenent de si voleu l'esquerra oa la vista del paisatge a la dreta). Ara la imatge es carrega per defecte en vista vertical, però des que es fa girar les imatges, l'usuari haurà de girar l'iPhone per veure el paisatge.
I then spend the next couple of hours creating comps, background images, buttons, card (front and back) and info page. I also spend some time focusing on the app icon. This is obviously the “face” of your app—a badge of honor—so you'll want to put careful thought into the icon imagery. Remember, you'll need the icon in both the 57×57 and 512×512 sizes. Once completed, I upload it to Dropbox so that Roy could start using the creative elements.

By the time I glance back to Roy's laptop, he's created a new Xcode project and is already playing around with code to animate green boxes that flip on a click. While he's working on the prototype in the iPhone Simulator, I grab the info.plist file and edit some of the settings - remove status bar, app display name, remove gloss from icon, etc. We then decide it's time for us to add some real images to our prototype. We put in the background image, the front and back of the cards and the navigation buttons. The positioning is off (by a lot) but the cards look good and it's flipping smoothly. We do some bad math, but eventually get the exact spacing and positioning that we want for each card. We play around with the timing of the flip, set the on/off states for the navigation button and now it's feeling pretty good.

En veure les peces s'uneixen en l'aplicació em mostra que hi ha un parell d'imatges que necessita ser refinada. Puc fer canvis com Roy comença a treballar a la pantalla i la pantalla de personalització d'informació. La personalitzar la pantalla és el lloc que permet que la gent escrigui el que voleu mostrar a la cara de la targeta. El límit de 25 caràcters ... res més que això i l'escriu a / fora de la targeta. Parlem a través d'aquesta pantalla una mica més en detall. La interacció en cada camp, com actua el teclat, i com desar abans de tornar a les cartes. Passem una mica de temps a la interfície de cablejat Builder exactament com volem que aquesta pàgina per mirar i actuar. La pàgina d'informació és completament opcional, però ens agradaria tenir-lo, ja que inclou altres formes d'arribar a nosaltres.
Wow, set hores i de quatre grans cafès més tard, tenim molt per fer, però encara hi ha molt més per recórrer. El que tenim ara és una aplicació que encén; mostra una pantalla de càrrega per defecte, fa que la gent a una pantalla que mostra tres cartes (part posterior de l'exhibició de la targeta), ja que poden seleccionar qualsevol o totes les targetes i les targetes dels estirades per mostrar la capdavant de la targeta, sinó que pot fer clic a un botó anomenat "Try Again" per restablir les targetes, ja que poden fer clic en un botó "Personalitzar" que s'obre una nova pantalla, la "Personalitzar" pantalla li permet introduir text en 3 per separat camps amb un màxim de 25 caràcters en cada camp, i es pot arribar a la pantalla d'informació. We spend the last hour of the day together cleaning up code and discussing what we have left to accomplish tomorrow.

On Sunday, we meet at another coffee shop with free Wi-Fi. Coffee first. We feel like we're about 80 percent done before we start working again. The major work left for the day ahead is saving the custom text, displaying the custom text on the face of the card, and randomizing the text. We had additional functionality ideas, but we kept ourselves honest, and kept the scope creep to a minimum. One example of this was the method for storing/saving the custom text on each of the three cards. Roy could have created a sqlite database or used Core Data, but the easiest approach was to just use the built in standardUserDefaults object found in the NSUserDefaults class. Using this method stores the values to the app's settings just fine for our needs and saves us a lot of time.

Si bé Roy està treballant sobre aquests temes, és una oportunitat perfecta per a mi preparar algunes de les coses que necessitarem més tard aquell dia. Quan vostè envia una aplicació a la App Store, no és una càrrega simple d'un arxiu. Apple requereix la següent informació per a tots els enviaments d'aplicació: Nom de l'aplicació, Descripció de l'aplicació, els requisits del dispositiu, Primària i Secundària Categoria, Subcategoria, Dret d'Autor, l'aplicació de Qualificació, paraules clau, Número SKU, Sol.licitud URL, captures de pantalla, Descripció de Màrqueting, Suport URL, correu electrònic Direcció, per a l'usuari final Acord de llicència, i establiment de preus / disponibilitat.
Així doncs, tota la informació de preparació presentació aplicació, mentre que Roy està ocupat codificació de distància, en primer lloc la recerca de la App Store per a aplicacions similars, i els seus noms. Ens agrada "Stuck?" I per sort ningú ho està utilitzant, així que anem amb aquest nom. Puc crear la descripció d'aplicacions, afegir algunes paraules clau, establir el preu i decidir si volem vendre aquesta aplicació (només als EUA, alguns països o en tot el món). Llavors puc registrar un nom de domini (stuckapp.com) que s'utilitzarà per a la direcció URL de sol.licitud / URL suport i vinculada a una recent creada compte de Tumblr. També va crear la adreça de correu electrònic de suport necessari. Els altres temes que vostè voldrà preparar amb antelació són: captures de pantalla (fins a cinc), una icona gran (512 × 512) i, si aquesta és la primera vegada que la presentació d'una aplicació, els certificats / perfils d'aprovisionament.
Things tend to take longer than you expect, and even though we're basically finished with the app by early Sunday afternoon, we still spend a couple of more hours tweaking it and preparing everything for the App Store submission—cleaning code and fine tuning as we go along. We spend the majority of the day on one computer pushing pixels, formatting, and ensuring the timing and user interaction was exactly as we both wanted. After almost five hours of work on Sunday, we have the app that we both envisioned. We begin testing in the iPhone simulator and then on devices (both iPhone and iPod touch) for stability and functionality. Again, being a simple app, it was easy and quick to test.
After proving its stability, we decide to publish Stuck? to the App Store. My first attempt at publishing another app by myself took two days—attempt, fail, Google, attempt, fail, Google more, etc.—until it finally worked. But the second time around was much easier and faster. We copy/paste all the text prepared earlier and then added the screenshots and images. All in all, we have our app uploaded in about 15 minutes. At this point, we're excited, hungry and tired, but also quite proud that we completed a solid app over a weekend in a coffee shop.

We had our fingers crossed that the App Store would approve our app. And, as amazed as we were that we could finish an app over the weekend, the real surprise came after we submitted to the App Store. We submitted the app on Sunday evening. It changed status from Waiting for Review‚ to In Review, on Monday. On Tuesday, we received an email informing us that our app was Ready for Sale. Approved in two days! That has to be a record‚ especially before the holidays.
Especially after talking about building an app together for so long, like so many people reading this article, I must say, the fulfillment is immense. We finally did it.

TIPS FOR COMPLETING AN APP OVER A WEEKEND
1. You can't do it yourself. You can, but you wouldn't want to. Ideally, you want to partner with someone with a different, complementary set of skills. Partner with someone who knows and respects your area of expertise, but is even more confident and knowledgeable about their own skills. Good communication is implied in an effort such as this so you'll go through periods of rapid fire questions bouncing ideas off each other and then periods of silence as you work on separate tasks. There's a lot to get done and multitasking will be key.
2. Multitask. As suggested above, working with someone who complements your own skills allows you to multitask. Què vull dir? For example, in the beginning, once you scratch out a wireframe of an idea, one person can begin coding - putting placeholder buttons and blocks into place. At the same time, the other person can create comps and then cut out each element to use when they get to the right stage. Also, at the tail end of the project, one person can wrap up the project and clean the code while the other prepares all the images and marketing copy for the App Store submission process.
3. Do at least one thing well. Unlike most desktop applications or web project, you have to remember that most good mobile apps fulfill a need that can come anywhere, any time. Your app idea doesn't have to be complicated, but good apps seem to do one or more of these things well:
- Solves a problem; - Is entertaining; - Serves a specific niche; - Engages the user; and/or - Takes advantage of the unique features of the iPhone.
4. Set goals and milestones. Whether your goal is speed to market, just to gain experience, or to build the best damn app that does (blank), clearly state your goals. Initially, it will help you focus on the areas that are important/critical for success. It will also help you later down the road as you face hard decisions about “must-have” features and “like-to-have” features. Remember, you can always issue feature updates so focus on the “must-have” items and do whatever is necessary to meet that goal.
5. Get a Dropbox account. For small- to medium-sized projects, you cannot beat Dropbox. It allows you to store, share and synchronize files with others. Stop sharing files back and forth on your USB memory stick. Get a Dropbox account and share files in real time. We abused the hell out of our free, shared Dropbox folder and it worked flawlessly. For larger projects, you might want to give GitHub a try.
6. Test. Test. Test. When you see the finish line, it's easy to gloss over the important step of testing your app. Test in your iPhone simulator, but also try to get your hands on an iPod touch and of course on an iPhone as well. Depending on the complexity of your app, you might want to create a test plan to make sure all the use cases and functional tasks are covered. The last thing you want is to have an app in the App Store that crashes or doesn't work as expected. You may never recover from all the ego-shattering feedback.
7. Understand the App Store submission process. Apple provides a PDF document detailing to submission process. But that document is only available for registered developers. If you've already registered, read that document thoroughly before you begin the upload process. It will give you a good idea of what's involved, but also what you'll need to prepare in advance. Apple also provides some good tips for app store submission and approval .
Font
gizmodo