jennify / Tipsy

This is a Tip Calculator application for iOS submitted as the pre-assignment requirement for CodePath. This tip calculator warns you if you're over or under tipping based on what services you picked in the settings page.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Intro to iOS] Project 1 - Review my app

jennify opened this issue · comments

My app is complete, please review. /cc @codepathreview

Good work. This prework is a preview of our weekly project process. Generally, weekly projects take between 5-10 hours to complete the required features and an additional 5-10 hours to complete the optional features. In general, we've seen that the more hours you log, the quicker you improve your proficiency with iOS.

The purpose of this project was to begin to explore Xcode and to get a broad overview of iOS development using Swift. For example, in this project, we explored the following concepts:

  • Code styling in Swift. You can find some code styling guides here:
  • Views are created in Storyboard, Interface Builder, or programatically, but they have the same goal: instantiate, initialize, and layout view objects. We use IBOutlets to give names to view objects, similar to giving unique ids to divs in HTML.
  • We registered for touch events, which can be done programatically or via IBActions.
  • We explored NSUserDefaults, one of the four persistence strategies in iOS.
  • View controllers have a set of methods that are called when it loads, appears, or disappears. These are called view controller lifecycle methods.
  • Do your views look good on iPhone 4, 5, and 6? Do your views look good on both iOS 6 vs iOS 7/8? We will cover in class how to use Auto Layout to robustly design your views for different screen sizes and OS versions.
  • After this assignment, you should understand the purpose of IBOutlets and IBActions as well as the basics of designing views and programmatically interacting with the views from the controller.

The next step is to schedule a brief phone conversation with the teaching team here. You might have to click to subsequent weeks to find an available slot. Admission is rolling, so the sooner you schedule, the better. Once you've selected a time, update the calendar event with a phone number to call you at.

During the phone calls, I'll ask you a few simple language questions that may include things like: strong vs weak properties, optionals, blocks/closures, and categories/extensions. I'll also ask you about why you want to learn iOS and what apps you're interested in building.

Feel free to make any improvements to the app before we chat, I'll check it one more time right before our call. I give priority to people that demonstrate that they are willing to put a lot of time into this class. Check out these past excellent submissions.