A lighting tour™ to iOS Plus some fun stuff

Slides:



Advertisements
Similar presentations
TableView and TableViewController
Advertisements

Introducing new web content management tools for Priority...
User Group 2015 Version 5 Features & Infrastructure Enhancements.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
FINAL PRESENTATION SYDNEY TOUR. Divya Nalla Raja Kandasamy RajaShekar Donti Ren Zhu Sadah Omar Sulaiman
1 Tradedoubler & Mobile Mobile web & app tracking technical overview.
Apps Find the latest version of this document at
View Controllers Content taken from book: “iPhone SDK Development” by Bill Dudney and Chris Adamson.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Mohit Anand, Software Engineer Adobe 1 Selecting GUI Automation Testing Tool for Mobile Domain.
Unit 13 –JQuery Basics Instructor: Brent Presley.
1 Reverse a String iPhone/iPad, iOS Development Tutorial.
Mr. Justin “JET” Turner CSCI 3000 – Fall 2015 CRN Section A – TR 9:30-10:45 CRN – Section B – TR 5:30-6:45.
THE PAPERLESS CLASSROOM: USING GOOGLE DRIVE TO CONDUCT A PAPERLESS RESEARCH PAPER: BENEFITS OF USING GOOGLE DRIVE TO CONDUCT A PAPERLESS RESEARCH PAPER,
Excel Services Displays all or parts of interactive Excel worksheets in the browser –Excel “publish” feature with optional parameters defined in worksheet.
Portlet Development Konrad Rokicki (SAIC) Manav Kher (SemanticBits) Joshua Phillips (SemanticBits) Arch/VCDE F2F November 28, 2008.
Author: Venue: Date: Portfolio Problems! Author: Ann Austin Venue: TVU SMR Date: Nov AA Nov 10.
Advance Computer Programming Market for Java ME The Java ME Platform – Java 2 Micro Edition (J2ME) combines a resource- constrained JVM and a set of Java.
IOS 9 - What’s new in iOS. Apple’s iOS 9 is now available for download for all iPhone, iPad, and iPod touch models that can run iOS 8. According to Apple,
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Building Azure Mobile Apps
Geospatial Research & Solutions GIS.ASU.EDU
Fundamentals of Object Oriented Modeling
Development Environment
What is next for the REDCap Mobile App?
INF230 Basics in C# Programming
SECTION 1: Add-ons to PowerPoint
Business Directory REST API
What is Apertis? Apertis is a versatile open source infrastructure tailored to the automotive needs and fit for a wide variety of electronic devices.
UofC Large Display Framework
iOS - First Application Anatomy
Basic Controls and Plugins
And Why You Should Use It In You Websites
HW#9 IOS Clues CSCI571 Spring 2017
Software Reuse ©Ian Sommerville 2006.
COMP3241 E-Commerce Technologies
ClassLens Hope C. | Amy L. | Yash T..
UITableView API A table view is an instance of the UITableView class. Created given... an area on the screen, and A table style. Rows are created using.
APIs (and their Relatives) Can Expand and Unify Library Services
Lists, Navigation How and why.
View-Controller Family
Team Covalence TED LI COURTNEY NOH LOGAN SHORT EMMA TOWNLEY-SMITH.
Chapter 16 – Software Reuse
IBM Kenexa BrassRing on Cloud Responsive Apply: Gateway Questionnaire Configuration April 2017.
Object Oriented Practices
James Blankenship March , 2018
Chapter 27 WWW and HTTP.
CIS16 Application Development Programming with Visual Basic
iOS App Development Training
Modern web applications
Create and edit web pages 2
CSC 581: Mobile App Development
Android Topics UI Thread and Limited processing resources
A Powerpoint about ...and irony
Modern web applications
CSC 581: Mobile App Development
Android Topics Limited Resources and why we need to consider them.
Helping teachers connect instantly with students and parents
Planning and Storyboarding a Web Site
Java Programming Introduction
…and web frameworks in general
Intro to Ajax Fred Stluka Jan 25, 2006.
12. Command Pattern SE2811 Software Component Design
Chapter 16 – Software Reuse
Innovation Co-Lab roots/React
NIEM Tool Strategy Next Steps for Movement
Web Client Side Technologies Raneem Qaddoura
Meaning Matters Semantic Markup.
Presentation transcript:

A lighting tour™ to iOS Plus some fun stuff Victor Wang, Software Engineer & Technical Consultant November 10, 2016

iOS Programming - How to? How are iOS apps structured? Model - View - Controller How are UI components (UIButton, UILabel, UITextField etc.) controlled by code? View rendering How to quickly prototype something? Use storyboards. But it has its own quirks. How to develop iOS apps modularly When you want another feature, simply add a module When you want to deprecate a feature, simply remove that module MVC, View population cycle, Storyboard

iOS Application Structure Makes extensive use of M (model) V (view) C (controller). In the context: M: model (store) that stores reminders Expose API for get/set C: controller (ViewController) that controls how data from store is displayed Call get/set from model -- get data Use that data to set view V: view that defines how the UI looks Expose APIs for set particular components

How are UI components controlled by code? View exposes API Controller knows about the API and call them Well-defined and structured in iOS ecosystem What about something like that ? → Autolayout Defines how components should align with each other or relative to edges of screen Tool: InterfaceBuilder View Rendering cycle viewDidLoad viewWillAppear viewDidAppear

Using Storyboard Best prototyping tool WYSIaWYG Handles view hierarchy initialisation for you Although sometimes you may not want it Save the amount of code you write just to define UI WYSWYG makes UI debugging easier Segues The transition from one VC to another VC Also takes care of initialising the destination VC Is also how you pass data to the destination VC

iOS APIs Being a good iOS developer means understanding iOS APIs and the design thinking behind it. Everything you touched so far is iOS API View and how views are displayed UI Components UI Component properties and methods Rendering cycle

Tackle a ubiquitous VC: UITableViewController What is delegation Vital in iOS APIs because they are everywhere, especially in hierarchical views What is a data source How iOS design thinking made early version of iOS much smoother than Android Is also why iOS devices can perform relatively well with way less RAM A little complex Tackle a ubiquitous VC: UITableViewController

Delegation & Protocol Problem Solution Sub view is controlled by a controller nested in a parent VC Sub view wants to Call a method in parent VC Pass data to parent VC Basically: all sort of interactions Solution Have sub view own a delegate of parent VC When parent VC initialise child VC, set child VC’s delegate to itself Child VC use delegate.”whatever()” to call parent VC’s methods Another Problem: both child VC and parent VC need to know about these available methods Child defines a protocol which the parent will implement A protocol is a set of predefined method headers

Put in context tableView doesn’t know anything about TableViewController tableView needs information from TableViewController to set its cells This includes title for the cell, content for the cell How many cells? How many sections? Cannot blindly pass all the data to tableView because you create redundant copy Memory is expensive and very limited resource on iOS devices iOS defines two protocols UITableViewDelegate UITableViewDataSource

About memory (RAM) Smart strategy iOS makes to save RAM TableViewCell - quite a number of them can be based on the same template (a title, some text, maybe adding a button of sorts…) Why not reuse them? When tableView is initialised, cell height and screen height is calculated to determine how many cell needs initialising and put in RAM After that, when cell is scrolled out of visible range (screen) it is recycled and populated with new content to be displayed at the opposite end of screen Very efficient because the total number of cells stays the same (not overflowing RAM)

Extends your app modularly Very cool 3rd party tool that gives you access to a number of libraries you can use to make your code more concise/readable/fast Do not take everything because app size is also important. You don’t want user to download an app that’s 500MB with very limited features. Understand the consequences and always install pods wisely CocoaPods Extends your app modularly

So many topic to be covered Web requests How to open a web page How to make HTTP requests GET/POST/PUT How to handle JSON data Maps How to show where the user is What used to be offered in iOS 2 is an app that retrieves a set of locations of all the coffee shops on campus and use your location to determine which one is the nearest to you So many topic to be covered iOS is huge but the it is designed to be understandable (we already covered its core design thinking)