
David Quinlan es un chico normal con trabajo diario y un poco de la codificación de la experiencia. Pero él y un amigo vivido el sueño y la manivela a cabo una sencilla aplicación para el iPhone en un fin de semana. He aquí cómo lo hicieron:
"Tailandesa, ensalada o ramen?" Es la hora del almuerzo típico en un jueves y nos parece que millones de personas en todo el mundo están reflexionando sobre la misma cuestión. Esta pregunta es nuestra plataforma de lanzamiento, lo que nos convierte parte de las miles de personas que querían construir una aplicación para el iPhone "que".
Soy un chico de comercialización de productos y con algunos conocimientos de diseño y codificación.
Roy es un desarrollador con algunos conocedores de negocios. Combinada, hacemos un gran equipo y se complementan entre sí y las habilidades, pero sólo empezó a trabajar con Objective-C año pasado, como muchos otros que están tratando a cabo el desarrollo del iPhone. Ya hemos construido una aplicación o dos, así que estamos familiarizados con el lenguaje y los marcos. Sin embargo, como con todos los nuevos proyectos, por lo general tiene que hacer una pequeña investigación para entender cómo acercar a los diferentes desafíos ... especialmente en un mundo definido por 320 × 480 píxeles.
Durante mucho tiempo, hemos jugado con la idea de crear una aplicación para la diversión. Después de descartar un par de buenas ideas (porque eran demasiado complicados o una búsqueda rápida en la App Store muestra que alguien más ya lo hace bien), las tierras de la hora del almuerzo con nosotros en una manera simple, divertida idea para ayudar a personas atrapadas entre las decisiones.
Pero mientras la mayoría de la gente quiere crear una gran aplicación para el iPhone, mi amigo y yo vamos un paso más allá, haciendo un pacto para terminar el proyecto dentro de un fin de semana-o realista, nuestra aplicación nunca llegaría completado.

En un pedazo de papel, que garabatear dos a tres wireframes y elaboró un esbozo de algunas pantallas de base. Nosotros decidimos sobre una aplicación que ofrece hasta tres opciones múltiples. Puedes escribir tus propias respuestas, por ejemplo, tailandesa, ensalada o ramen-y, simplemente, coger una elección al azar para ver la respuesta a su decisión. Decidimos utilizar cartas como el tema. Inmediatamente, el círculo que "debe tener" características (primera prioridad), entonces el "como para tener" características (última prioridad), y, finalmente, las características que necesita más investigación. Dejamos el almuerzo del jueves con un pequeño trabajo y un plan para conseguir juntos el sábado.
Mi tarea incluye la determinación de la apariencia, sensación y la interacción en cada pantalla. Roy necesita en la investigación algunas de las características de Xcode no hemos tenido la oportunidad de jugar con aún en nuestros empleos "reales", sobre todo las animaciones y la aleatorización.
El sábado por la mañana, nos reunimos en una cafetería local, que había Wi-Fi, la afirmación de una gran mesa para que podamos sentarnos lado a lado y coger la primera de muchas grandes tazas de café. Entonces se crea una carpeta Dropbox compartida para este proyecto-una cuenta básica es gratuita y viene con 2 GB de almacenamiento. El cuadro de selección es importante porque nos permite realizar varias tareas en el mismo proyecto junto con alguno o todos los cambios de la sincronización en tiempo real. Para proyectos más grandes, puede que desee considerar GitHub.
Nos detenemos un esbozo más detallado de lo que queremos lograr para nuestra aplicación, así como wireframes de base. Teniendo en cuenta que sólo tenemos un fin de semana para completar esta aplicación, nos decidimos a centrarse sólo en el "debe tener" características. Un desarrollador siempre puede emitir actualizaciones de funciones en una fecha posterior para incluir el "bueno tener" características.
Going pantalla por pantalla, que detalle los elementos de la página, los tratamientos de estilo, diseño, horarios, etc También hablaremos de lo que Roy aprendió sobre la animación de movimiento tapa de la tarjeta, ya que esta fue una de las funciones básicas de la aplicación. Se revisa brevemente el Quartz 2D y bibliotecas Core Animation, ya que no habían hecho ningún trabajo con ellos. Podemos incluso hablar con un UIWebView para hacer la animación en CSS WebKit. En última instancia, encontrar una solución sencilla utilizando UIViews estándar y UIButtons. La clase UIView tiene algunos métodos de animación de clase, y uno de los construidos en las transiciones es un efecto de tirón. En cuanto a la asignación al azar, sabíamos que la mayoría de idiomas ofrecen una función aleatoria, y Objective-C no es una excepción. Para efectos de esta aplicación, lo único que quería era un método sencillo para cambiar aleatoriamente una matriz. Roy encontró un par de ejemplos de esto, pero uno que se destacó fue en el sitio web del Dr. Touch. Se describe un método para poner en práctica un método de extensión de clase de esta manera puede mezclar cualquier matriz.
Nos sumergimos en nuestros respectivos MacBook Pro con un Borg-como el enfoque en nuestras esferas de competencia. Abro Photoshop y comenzó a las pantallas de la construcción. La primera pantalla es la imagen por defecto. Esta es la primera página la gente ve cuando la aplicación se inicia y comienza la carga. Aplicaciones se pueden construir en retrato o paisaje. Si decide crear su aplicación en la vista horizontal como la nuestra, usted todavía necesita para crear una imagen predeterminada que se muestra en la vista vertical. Basta con crear su punto de vista del paisaje y girar en sentido horario o antihorario (dependiendo de si desea la izquierda o la vista horizontal a la derecha). Ahora, la carga por defecto la imagen en vista vertical, pero desde hace girar las imágenes, el usuario deberá girar el iPhone a la vista del paisaje.
Luego pasar el próximo par de horas la creación de composiciones, imágenes de fondo, botones, de la tarjeta (anverso y reverso) y la página de información. También pasar algún tiempo a centrarse en el icono de aplicación. Esta es, obviamente, la "cara" de su aplicación, una insignia de honor, por lo que usted quiere poner una reflexión cuidadosa en la imagen del icono. Recuerde, usted necesitará el icono tanto en el 57 × 57 y 512 × 512 tamaños. Una vez terminado, puedo añadir que a selección a fin de que Roy puede empezar a utilizar los elementos creativos.

En el momento en que mirar hacia atrás para portátil de Roy, que ha creado un proyecto de Xcode nuevo y ya está jugando con el código para animar a las cajas verdes que tapa en un clic. Mientras está trabajando en el prototipo en el iPhone Simulator, agarro las Info.plist archivo y editar algunas de las opciones - Eliminar la barra de estado, de nombre aplicación, eliminar el icono de brillo, etc Entonces decide que es hora de agregar algunos las imágenes reales en nuestro prototipo. Ponemos en la imagen de fondo, el anverso y reverso de las tarjetas y los botones de navegación. La posición está desactivado (por mucho), pero las tarjetas se vea bien y es mover de un tirón sin problemas. Hacemos un poco de matemáticas mal, pero finalmente obtener la separación y la posición exacta que queremos para cada tarjeta. Jugamos un poco con el calendario de la tapa, sistema de encendido / apagado estados para el botón de navegación y ahora se siente bastante bien.

Al ver las piezas se unen en la aplicación me muestra que hay un par de imágenes que las necesidades de ajuste fino. Puedo hacer cambios como Roy comienza a trabajar en la pantalla de personalizar y pantalla de información. Personalizar la pantalla es el lugar que permite que la gente escriba lo que quiera mostrar en la cara de la tarjeta. Nos limitamos a 25 caracteres ... nada más que eso y se escribe en / fuera de la tarjeta. Hablamos a través de esta pantalla un poco más en detalle. La interacción en cada campo, cómo actúa el teclado, y cómo guardar antes de volver a las tarjetas. Pasamos un poco de tiempo en la interfaz de cableado Builder exactamente cómo queremos que esta página para buscar y actuar. La página de información es completamente opcional, pero nos gustaría tenerlo, ya que incluye otras formas de llegar a nosotros.
Wow, siete horas y de cuatro grandes cafés más tarde, tenemos mucho por hacer, pero todavía hay mucho más por hacer. Lo que tenemos ahora es una aplicación que se activa hasta, muestra una pantalla de carga por defecto, hace que la gente a una pantalla que muestra tres cartas (parte posterior de la muestra de tarjeta), ya que pueden seleccionar cualquiera o todas las tarjetas y las tarjetas de lanzamientos para mostrar la frente de la tarjeta, pueden hacer clic en un botón llamado "Try Again" para restablecer las tarjetas, pueden hacer clic en un botón "Personalizar" que se abre una nueva pantalla, el "Personalizar" pantalla le permite introducir texto en 3 distintos campos con un máximo de 25 caracteres en cada campo, y se puede llegar a la pantalla de información. Nos pasamos la última hora del día juntos la limpieza de código y discutir lo que nos queda para llevar a cabo mañana.

El domingo, nos reunimos en otra tienda de café con Wi-Fi. Primer café. Nos sentimos que estamos cerca del 80 por ciento de hacer antes de empezar a trabajar de nuevo. El trabajo principal a la izquierda para el día siguiente es guardar el texto personalizado, mostrando el texto personalizado en la cara de la tarjeta, y al azar el texto. Teníamos ideas funcionalidad adicional, pero seguimos nosotros honesta, y mantuvo el sobredimensionamiento del alcance a un mínimo. Un ejemplo de esto fue el método para almacenar / guardar el texto personalizado en cada una de las tres cartas. Roy podría haber creado una base de datos SQLite o utilizado de Datos Básicos, pero el enfoque más sencillo era simplemente utilizar el construido en standardUserDefaults objeto encontrado en la clase NSUserDefaults. El uso de este método almacena los valores de configuración de bien para nuestras necesidades de la aplicación y nos ahorra mucho tiempo.

Si bien Roy está trabajando en esos temas, es una oportunidad perfecta para mí, para preparar algunas de las cosas que vamos a necesitar más tarde ese día. Cuando usted envía una aplicación a la App Store, no es una simple carga de un archivo. Apple requiere la siguiente información para cada presentación App: Nombre de la aplicación, la aplicación Descripción, requisitos de dispositivos, Primaria y Secundaria Categoría, Subcategoría, Derecho de Autor, App Clasificación, palabras clave, Número SKU, Solicitud URL, capturas de pantalla, Marketing Descripción de Apoyo dirección, e-mail de apoyo Dirección, End User License Agreement, y precios y la disponibilidad.
Así que toda la información de preparación para la presentación app mientras que Roy está ocupado codificación de distancia, en primer lugar la búsqueda de la App Store para aplicaciones similares, y sus nombres. Nos gusta "Stuck?" Y, afortunadamente, nadie más está usando, así que vamos con ese nombre. Puedo crear la descripción de aplicación, añadir algunas palabras clave, establecer el precio y decidir si queremos vender esta aplicación (sólo en los EE.UU., algunos países o en todo el mundo). Entonces registrar un nombre de dominio (stuckapp.com) que se utilizará para la solicitud de URL / URL de apoyo y vinculado a una cuenta en Tumblr de nueva creación. I also created the required support email address. The other items you'll want to prepare in advance are: screenshots (up to five), a large icon (512×512) and, if this is your first time submitting an app, any certificates/provisioning profiles.
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. What do I mean? 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 .
Fuente
gizmodo