
David Quinlan είναι ένα κανονικό άνθρωπο με την εργασία την ημέρα και μόνο ένα κομμάτι της κωδικοποίησης εμπειριών. Αλλά και ένα φίλο έζησε το όνειρο και cranked ένα απλό app iPhone σε ένα Σαββατοκύριακο. Εδώ είναι πώς το έκαναν:
"Σαλάτα Ταϊλάνδης, ή ramen;" Είναι μεσημέρι σε ένα τυπικό Πέμπτη και αυτό μας φαίνεται ότι εκατομμύρια άνθρωποι σε όλο τον κόσμο είναι μελετώντας την ίδια ερώτηση. Αυτή η ερώτηση είναι launchpad μας, κάνοντάς μας μέρος των χιλιάδων ανθρώπων που ήθελαν να οικοδομήσει ένα iPhone app για "αυτό".
Είμαι τύπος του προϊόντος και την εμπορία με κάποια σχεδιασμού και κωδικοποίησης των δεξιοτήτων.
Roy είναι ένας προγραμματιστής με κάποιο επιχειρηματικό μυαλό. Συνδυασμένη, έχουμε κάνει μια μεγάλη ομάδα και να συμπληρώνει τις δεξιότητες του άλλου καλά, αλλά είμαστε μόνο άρχισε να εργάζεται με στόχο-Γ τελευταία χρόνια, όπως και πολλοί άλλοι οι οποίοι προσπαθούν από το iPhone ανάπτυξη. Έχουμε ήδη κατασκευάσει μία εφαρμογή ή δύο, έτσι είμαστε εξοικειωμένοι με τη γλώσσα και πλαισίων. Ωστόσο, όπως και με όλα τα νέα έργα, που συνήθως έχουν να κάνουν μια μικρή έρευνα για να κατανοήσουν τον τρόπο προσέγγισης των διαφόρων προκλήσεων ... ιδίως σε έναν κόσμο που ορίζεται από 320 × 480 pixels.
Για το μεγαλύτερο χρονικό διάστημα, έχουμε έπαιξε με την ιδέα της δημιουργίας ενός app για διασκέδαση. Μετά την απόρριψη μερικές καλές ιδέες (διότι ήταν υπερβολικά περίπλοκο ή μια γρήγορη αναζήτηση στο App Store έδειξε ότι κάποιος άλλος έχει ήδη κάνει καλά), εδάφη μας το μεσημέρι για ένα απλό, διασκεδαστικό ιδέα να βοηθήσει τους ανθρώπους να κολλήσει μεταξύ των αποφάσεων.
Αλλά ενώ οι περισσότεροι άνθρωποι θέλουν να δημιουργήσουν ένα μεγάλο app iPhone, ο φίλος μου και να πάω ένα βήμα παραπέρα, κάνοντας ένα σύμφωνο για να ολοκληρωθεί το έργο μέσα σε ένα Σαββατοκύριακο-ή ρεαλιστικά, app μας δεν θα μπορούσε ποτέ να ολοκληρωθεί.

Με ένα κομμάτι χαρτί, έχουμε κακογράφω από δύο-τρεις wireframes και ανέπτυξε ένα περίγραμμα για ορισμένες βασικές οθόνες. Έχουμε αποφασίσει για μια εφαρμογή που προσφέρει μέχρι και τρεις πολλαπλές επιλογές. Μπορείτε να γράψετε τη δική σας απάντηση-για παράδειγμα, της Ταϊλάνδης, σαλάτα ή ramen-και να επιλέξετε απλά μια τυχαία επιλογή για να δείτε την απάντηση στην απόφασή σας. Έχουμε αποφασίσει να χρησιμοποιήσει παιγνιοχάρτων ως το θέμα. Αμέσως, εμείς κύκλο του "πρέπει" να έχουν χαρακτηριστικά (πρώτη προτεραιότητα), τότε το "ήθελε να έχει" χαρακτηριστικά (τελευταία προτεραιότητα), και τέλος τα χαρακτηριστικά που απαιτούνται περισσότερες έρευνες. Αφήνουμε γεύμα την Πέμπτη με ένα μικρό σπίτι και ένα σχέδιο για να πάρετε μαζί το Σάββατο.
Σπίτι μου περιλαμβάνουν τον καθορισμό του εμφάνιση, αίσθηση και την αλληλεπίδραση σε κάθε οθόνη. Roy χρειάζεται να εμβαθύνετε σε ορισμένα από τα χαρακτηριστικά Xcode δεν είχαμε την ευκαιρία να παίξουν με ακόμη σε μας "πραγματικές" θέσεις εργασίας, κυρίως κινούμενα σχέδια και την τυχαιοποίηση.
Το Σάββατο το πρωί, συναντιόμαστε σε ένα τοπικό καφενείο που είχαν δωρεάν Wi-Fi, αξίωση ένα μεγάλο τραπέζι για να μπορέσουμε να καθίσει side-by-side και πιάσε το πρώτο από τα πολλά μεγάλα φλιτζάνια καφέ. Τότε θα δημιουργήσουμε μια κοινή Dropbox φάκελο για το έργο αυτό σε ένα βασικού λογαριασμού είναι δωρεάν και έρχεται με 2GB της αποθήκευσης. Το Dropbox είναι σημαντική διότι μας επιτρέπει να multitask για το ίδιο έργο με κάθε / όλες τις αλλαγές συγχρονισμό σε πραγματικό χρόνο. Για τα μεγάλα έργα, μπορεί να θέλετε να εξετάσει GitHub.
Έχουμε τραβήξτε μια πιο λεπτομερή περιγραφή του τι θέλουμε να επιτύχει app για μας, καθώς και βασικά wireframes. Δεδομένου ότι έχουμε μόνο ένα Σαββατοκύριακο για να ολοκληρωθεί αυτό το app, έχουμε αποφασίσει να επικεντρωθεί μόνο στο "πρέπει" να έχουν χαρακτηριστικά. Ένας προγραμματιστής μπορεί να εκδίδει πάντοτε Ενημέρωσης σε μεταγενέστερη ημερομηνία να συμπεριλάβει την "ωραίο να έχουν" χαρακτηριστικά.
Πηγαίνοντας οθόνη-από-οθόνης, θα περιγράφονται λεπτομερώς τα στοιχεία της σελίδας, θεραπείες στυλ, τη διάταξη, το χρονοδιάγραμμα, κλπ. Πρέπει επίσης να συζητήσουμε τι Roy έμαθε για την εμψύχωση flip κίνηση της κάρτας, δεδομένου ότι αυτή ήταν μία από τις βασικές λειτουργίες του App. Εξετάζουμε εν συντομία την χαλαζία 2D και βιβλιοθήκες Core Animation, αφού δεν είχαμε κάνει στο παρελθόν οποιαδήποτε εργασία με αυτές. Έχουμε συζητήσει ακόμη και με τη χρήση UIWebView να καταστήσει την κίνηση εντός CSS WebKit του. Σε τελική ανάλυση, να βρούμε μια απλή λύση με βάση το τυπικό UIViews και UIButtons. Η τάξη UIView έχει κάποιες μεθόδους κατηγορία κινούμενα σχέδια, και ένα από τα ενσωματωμένα στο μεταβάσεις είναι ένα flip αποτέλεσμα. Όσο για την τυχαιοποίηση, ξέραμε ότι οι περισσότερες γλώσσες παρέχουν μια τυχαία λειτουργία, και του στόχου-C δεν αποτελεί εξαίρεση. Για τους σκοπούς της εφαρμογής αυτής, το μόνο που ήθελε ήταν μια απλή μέθοδος για να Randomize μια σειρά. Roy βρέθηκαν μερικά παραδείγματα, αλλά εκείνο που ξεχώρισε ήταν πάνω στο δικτυακό τόπο του Δρ Touch. Περιγράφει μια προσέγγιση με την οποία για την εφαρμογή μιας μεθόδου επέκταση τάξη, ώστε να μπορείτε εύκολα να ανακατέψει κάθε πίνακα.
Εμείς βουτιά στα αντίστοιχα Πλεονεκτήματα MacBook μας με Borg-όπως η εστίαση σε επιμέρους τομείς της τεχνογνωσίας μας. I ανοίξει Photoshop και άρχισε οθόνες κτίριο. Η πρώτη οθόνη είναι η εικόνα προεπιλογή. Αυτή είναι η πρώτη οθόνη άνθρωποι βλέπουν όταν το app αρχίζει και αρχίζει φόρτωσης. Apps μπορούν να κατασκευαστούν είτε πορτρέτο είτε τοπίο. Αν επιλέξετε να οικοδομήσουμε app σας στο τοπίο σαν το δικό μας, θα πρέπει ακόμα να δημιουργήσετε μια προεπιλεγμένη εικόνα που εμφανίζει κατά την άποψή πορτρέτο. Απλά δημιουργήστε τοπίο σας και περιστροφή προς τα δεξιά ή προς τα αριστερά (ανάλογα με το αν θέλετε αριστερά ή δεξιά τοπίο). Τώρα τα φορτία εικόνα προεπιλογή κατά την άποψή πορτρέτο αλλά από τις εικόνες σας περιστρέφεται, ο χρήστης θα στρίψιμο το iPhone για να δείτε το τοπίο.
Περνώ στη συνέχεια, τις επόμενες ώρες δημιουργία comps, εικόνες φόντου, κουμπιά, κάρτα (εμπρός και πίσω) και πληροφορίες σελίδας. Ξοδεύω επίσης κάποιο χρόνο με επίκεντρο το app εικονίδιο. Αυτό είναι προφανώς το "πρόσωπο" της app σας-μαρτυρία τιμή-έτσι θα θελήσετε να θέσουν προσεκτικά τις εικόνες στο εικονίδιο. Θυμηθείτε, θα χρειαστείτε την εικόνα τόσο του 57 × 57 και 512 × 512 μεγέθη. Μόλις ολοκληρωθεί, θα το ανεβάσουμε να Dropbox Roy, έτσι ώστε να αρχίσουν να χρησιμοποιούν τα δημιουργικά στοιχεία.

Με τη φορά ματιά πίσω στο φορητό υπολογιστή του Roy, αυτός που δημιούργησε ένα νέο πρόγραμμα Xcode και διαδραματίζει ήδη η περιοχή με κωδικό για να εμψυχώσει πράσινα κουτιά που flip σε ένα κλικ. Ενώ αυτός που εργάζεται για το πρωτότυπο στο iPhone Simulator, πιάσε μου το info.plist αρχείο και να επεξεργαστείτε κάποιες από τις ρυθμίσεις - αφαίρεση γραμμή κατάστασης, app εμφανιζόμενο όνομα, αφαιρέστε γυαλιστερό από το εικονίδιο, κλπ. Θα αποφασίσει στη συνέχεια ήρθε η ώρα για εμάς να προσθέσει ορισμένες πραγματικές εικόνες πρωτότυπο μας. Βάλαμε στην εικόνα φόντου, το εμπρός και πίσω από τις κάρτες και τα κουμπιά πλοήγησης. Η θέση είναι μακριά (από πολλά), αλλά οι κάρτες είναι καλές και είναι κτύπημα ομαλά. Κάνουμε μερικές κακές μαθηματικά, αλλά τελικά λαμβάνουν τα ακριβή απόσταση και τη θέση που θέλουμε για κάθε κάρτα. Έχουμε παίξει περίπου με το χρονοδιάγραμμα των flip, που το on / off αναφέρει για το πλήκτρο πλοήγησης και τώρα είναι πολύ καλή αίσθηση.

Βλέποντας τα κομμάτια ενώνονται στο app μου δείχνει ότι υπάρχουν μερικές εικόνες που χρειάζεται fine tuning. Κάνω αλλαγές όπως Roy αρχίζει εργασίας για την προσαρμογή της οθόνης και οθόνη πληροφορίες. Προσαρμόσετε την οθόνη είναι ο χώρος που επιτρέπει στους ανθρώπους να πληκτρολογήσετε σε ό, τι θέλουν να δείξουν στην όψη της κάρτας. Έχουμε την περιορίσουν σε 25 χαρακτήρες ... τίποτα περισσότερο από αυτό και να γράφει πάνω / εκτός της κάρτας. Μιλάμε μέσω αυτής της οθόνης λίγο πιο λεπτομερώς. Η αλληλεπίδραση σε κάθε τομέα, πώς οι πράξεις πληκτρολόγιο, και με τον τρόπο αποθήκευσης πριν πάτε πίσω στην κάρτες. Ξοδεύουμε λίγο χρόνο στην καλωδίωση Interface Builder μέχρι ακριβώς πώς θέλουμε αυτή τη σελίδα για να δείτε και να δράσει. Η σελίδα info είναι εντελώς προαιρετική, αλλά θα ήθελα να το έχουν, διότι περιλαμβάνει πρόσθετους τρόπους για να επικοινωνήσετε μαζί μας.
Wow, επτά ώρες και τέσσερα μεγάλα καφέδες αργότερα, έχουμε κάνει πολλά, αλλά υπάρχει ακόμη πολλά περισσότερα για να πάει. Αυτό που έχουμε τώρα είναι μια εφαρμογή που πυρκαγιές μέχρι? Εμφανίζει μια οθόνη φόρτωσης προεπιλεγμένη? Παίρνει ανθρώπους σε μια οθόνη που δείχνει τρία φύλλα (πίσω από την παρουσίαση της κάρτας)? Μπορούν να επιλέξουν οποιοδήποτε / όλα του τα φύλλα και τα φύλλα flips να δείτε τα μπροστά από την κάρτα? μπορούν να κάνουν κλικ σε ένα κουμπί με ετικέτα "Try Again" για να επαναφέρετε τις κάρτες? μπορούν να κάνουν κλικ σε ένα κουμπί με τίτλο "Προσαρμογή" που ανοίγει μια νέα οθόνη? την "Προσαρμογή" οθόνη σας επιτρέπει να εισάγετε κείμενο σε 3 ξεχωριστά πεδία, με ανώτατο όριο των 25 χαρακτήρες σε κάθε πεδίο? και μπορείτε να φτάσετε στην οθόνη Info. Ξοδεύουμε την τελευταία ώρα της ημέρας καθώς και τον καθαρισμό των κώδικα και να συζητά αυτό που έχει απομείνει για να επιτευχθεί αύριο.

Την Κυριακή, συναντιόμαστε σε άλλο καφενείο με δωρεάν Wi-Fi. Καφές πρώτα. Αισθανόμαστε σαν είμαστε περίπου 80 τοις εκατό γίνει πριν αρχίσει να λειτουργεί ξανά. Το σημαντικό έργο αριστερά για την επαύριον αποθηκεύει το προσαρμοσμένο κείμενο, δείτε το κείμενο προσαρμοσμένο στην όψη της κάρτας, και randomizing το κείμενο. Είχαμε επιπλέον ιδέες λειτουργικότητα, αλλά διατηρούνται οι ίδιοι είμαστε ειλικρινείς, και να διατηρείται το ερπυσμού πεδίο στο ελάχιστο. Ένα παράδειγμα ήταν η μέθοδος για την αποθήκευση / αποθήκευση του κειμένου προσαρμοσμένο για κάθε ένα από τα τρία φύλλα. Roy θα μπορούσε να δημιουργήσει μια βάση δεδομένων SQLite ή χρησιμοποιούνται βασικών στοιχείων, αλλά η ευκολότερη προσέγγιση ήταν απλά να χρησιμοποιήσετε το ενσωματωμένο στο standardUserDefaults αντικείμενο που βρέθηκαν στην τάξη NSUserDefaults. Η χρήση αυτής της μεθόδου αποθηκεύει τις τιμές για να ρυθμίσεις το app είναι μια χαρά για τις ανάγκες μας και μας σώζει πολύ χρόνο.

Ενώ Roy επεξεργάζεται τα στοιχεία αυτά, είναι μια τέλεια ευκαιρία για μένα να προετοιμάσει μερικά από τα πράγματα που θα χρειαστείτε αργότερα την ίδια ημέρα. Όταν υποβάλει app στο App Store, δεν είναι ένα απλό upload ενός αρχείου. Apple απαιτεί από τις ακόλουθες πληροφορίες για κάθε app υποβολή: Όνομα Application, Application Περιγραφή, απαιτήσεις συσκευών, Πρωτοβάθμιας και Δευτεροβάθμιας κατηγορίας, Υποκατηγορίες, Copyright, App Rating, Λέξεις κλειδιά, SKU αριθμό, URL, οθόνη πλάνα, Περιγραφή Μάρκετινγκ, Υποστήριξη URL, Email Υποστήριξη Διεύθυνση, End User License Agreement, and Pricing / Διαθεσιμότητα.
Έτσι, εγώ prep όλες τις πληροφορίες app υποβολή ενώ Ρόι είναι απασχολημένος κωδικοποίησης μακριά, πρώτη αναζήτηση του App Store για παρόμοιες εφαρμογές και τα ονόματά τους. Μας αρέσει το "Stuck;" και ευτυχώς κανένας άλλος δεν το χρησιμοποιεί, έτσι πάμε με αυτό το όνομα. Μπορώ να δημιουργήσω το app περιγραφή, προσθέστε μερικές λέξεις-κλειδιά, που η τιμή και να προσδιοριστεί πού θέλουμε να πωλήσει αυτό το app (μόνο στις ΗΠΑ, ορισμένες χώρες ή σε όλο τον κόσμο). Then I register a domain name (stuckapp.com) to be used for the application URL/support URL and linked it to a newly created Tumblr account. 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 .
Πηγή
Gizmodo