Professional Documents
Culture Documents
1. Pre-Building
1. Youre doing this as an exercise to learn programming.
2. Youre building this for a fun side project.
3. Youre building this for someone or $$ a.k.a A job.
b. Misconceptions
1. It takes more than knowing iOS or Android.
2. A lot of different types of engineers work together to make high-quality app.
3. If you only know iOS, you could build a simple app, but probably a pretty crappy
one.
b. Front-End
1. Purpose - Implementing the design and vision of the product.
2. UI
1. Any Front-End product or Front-End engineer is judged on how nicely
their application looks and behaves.
2. The details count and its easier said than done to make something
smooth scrolly.
ii. Navigation
1. Pushing / popping out of different flows.
2. Keeping parallel user states of the app intact.
3. Open up your any app on your phone, and just ask yourself. How would
you design the navigation in this app?
ii. Performance
1. You dont want to kill peoples battery.
2. (Network) Dont download huge things if someone is not on wifi.
3. (Network) Dont request from the backend too often if you can cache
things. Download an image once, cache a copy and keep it around.
4. (Graphics) Chill on the animations if necessary
ii. Offline
1. Dont underestimate this.
ii. UX
1. Different than UI.
1. UI -> How nice this menu looks.
2. UX -> How intuitive is it to sign up?
b. Back-End
i. Purpose - powers the mobile apps front-end. Organizes, persists, and returns
relevant data for the application.
ii. Resources
1. Most front-end apps request over HTTP(The Internet) to the back-end
and the back-end will respond with some data.
2. CRUD - Create Read Update Destroy
3. Business Logic.
ii. Organization Data
1. User data - any data specific to a user. Password, logins, your favorites,
etc.
2. Global data - any data that is needed to power the application itself.
1. E.g. Twitter tracks trending data across various topics, and
presents to certain users who might be interested.
ii. Anything Smart
1. E.g. Some kind of smart recommendation engine or heavy-duty technical
feature would probably be implemented on the back-end.
2. The front-end would just tap into the smarts with some interface.
ii. Notification
1. Many notifications happen. Your friend liked your photo and you got a
popup.
2. All logic about this is handled in the backend. What triggers one, who
does it go to, what does it say etc.
ii. Multi-Services
1. Think Amazon. You interact with one website and you click BUY
2. Maybe an inventory service is updated
3. Payment service is initiated.
4. Another recommendation system gets your transaction details and
updates its modeling.
ii. Scaling
1. How would the app potentially handle Snapchat level users?
2. If you have this problem, its a good problem because people are using
your app.
3. Takings collaboration of all engineers everyone. Backend-engineer
collabs with a devops person, and front-end engineers changes how the
client requests data.
ii. Third Party Backend
1. Your client can directly can speak to other backends. (Third Party)
2. You could use and pay for a third party backend to do Analytics and
logging for you. How long did this user stay on the home page?
3. Your backend can speak to other backends or APIs to help out. You
wont be writing your own payment provider.
b. Design
i. Purpose - No one will use your application without design. If youre building a
mobile application, its intending for a consumer audience.