Mobile App Development. ios Platform

Similar documents
Developing Applications for ios

CS193p Spring 2010 Wednesday, March 31, 2010

Stanford CS193p. Developing Applications for ios Fall Stanford CS193p. Fall 2013

Embedded HW/SW Co-Development

iphone App Basics iphone and ipod touch Development Fall 2009 Lecture 5

Page 1. GUI Programming. Lecture 13: iphone Basics. iphone. iphone

Android - open source mobile platform

Praktikum Entwicklung von Mediensystemen mit

ios Application Development Course Details

Intro to Native ios Development. Dave Koziol Arbormoon Software, Inc.

Cocoa. Last Week... Music 3SI: Introduction to Audio/Multimedia App. Programming. Today... Why Cocoa? Wikipedia - Cocoa

Topics in Mobile Computing

Android & iphone. A Comparison. Stefan Tramm JUGS, Jahresevent

Android Overview. Most of the material in this section comes from

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Android is a software stack for mobile devices and comprises middleware, operating system and core

Welcome to CS193E. Mac OS X Cocoa Programming. James Dempsey Paul Marcos

Contents. Before You Begin. Copyright 2010 by Deitel & Associates, Inc. All Rights Reserved.

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

X Review. Mac OS X Roots: NeXT. BWS Available for virtually every OS

CSC 581: Mobile App Development Spring 2019

An overview of mobile and embedded platforms

Object-Oriented Programming in Objective-C

Intro to Development for ios. Dave Koziol Arbormoon Software, Inc.

ios vs Android By: Group 2

Android Overview. Francesco Mercaldo, PhD

Preface...3 Acknowledgments...4. Contents...5. List of Figures...17

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services

Publisher v3 Documentation

Xcode and Swift CS 4720 Mobile Application Development

Toyin Adedokun & Daniel Laughlin. Exploring the iphone SDK

John Ray. Sams Teach Yourself. iphone. Application Development. Second Edition. S^/MS 800 East 96th Street, Indianapolis, Indiana, USA

CS 47. Beginning iphone Application Development

The MVC Design Pattern

iphone Development Setup Instructions Nikhil Yadav Pervasive Health Fall 2011

Building Apps with the ArcGIS Runtime SDK for ios

Mobile and Wireless Systems Programming

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

SHWETANK KUMAR GUPTA Only For Education Purpose

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

Principles of Programming Languages. Objective-C. Joris Kluivers

About Xcode and iphone SDK

Mobile development initiation

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

Contents. iphone Training. Industry Trainers. Classroom Training Online Training ON-DEMAND Training. Read what you need

Four Components of a Computer System

CMSC 628: Introduction to Mobile Computing

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Introduction to Cocoa Programming

Mobile Computing Meets Research Data

Getting Started with Apple ios Development Link-OS SDK Objective-C

Science. Computer Science

WELCOME Mobile Applications Testing. Copyright

Questions. Exams: no. Get by without own Mac? Why ios? ios vs Android restrictions. Selling in App store how hard to publish? Future of Objective-C?

OBJECTIVE-C BEST PRACTICES IN A TEAM ENVIRONMENT

ios in Practice MANNING BEAR CAHILL Shelter Island

RAD Studio XE4 in Action LIVE! 14th May, 2013 Taipei Malcolm Groves

IPHONE. Development Jump Start. phil nash levelofindirection.com

14 年 3 月 25 日星期二. i-flashdrive HD 2nd Generation 08

Chapter 2: Operating-System Structures

COPYRIGHTED MATERIAL. 1Hello ios! A Suitable Mac. ios Developer Essentials

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Profile Can't Be Found Jenkins

CS 528 Mobile and Ubiquitous Computing Lecture 1b: Introduction to Android. Emmanuel Agu

Android Software Development Kit (Part I)

Building Applications with ArcGIS Runtime SDK for ios - Part I. Divesh Goyal Mark Dostal

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

IPHONE FOR PROGRAMMERS: AN APP-DRIVEN APPROACH

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Android App Development

Ios Sdk Documentation For Windows 7 32 Bit Full Version

CS 371L - Mobile Computing (ios) Dr. William C. Bulko. CS 371L Mobile Computing (ios) Introduction

Android App Development Workshop

Lesson 1: Hello ios! 1

Introduction to Android Application Development. Mike Kvintus Principal Engineer JDSU

IBM Case Manager Mobile Version SDK for ios Developers' Guide IBM SC

Colligo Briefcase 3.0

MOBILE COMPUTING Unit V

Part IV: Connecting Your Apps

Structure of OS. After knowing a bit of OS Review of different computing environment

Introduction to ArcGIS API for ios. Divesh Goyal Eric Ito

OVERVIEW. Why learn ios programming? Share first-hand experience. Identify platform differences. Identify similarities with.net

Richard Mallion. Swift for Admins #TEAMSWIFT

Mobile Application Development

Mobile Apps 2010 iphone and Android

Duration 5 days (For basic crowd 5+3days needed)

Design and Implementation of the Smart Virtual Machine on ios Platform for the Mobile Game Portability

An ios Static Library for Service Discovery and Dynamic Procedure Calls

Secure your Snow Leopard

UC-One Implementation Guide

Mobile Internet Devices and the Cloud

Jenkins Xcode Code Sign Error User Interaction Is Not Allowed

Briefcase ios 3.7. Administrator s Guide

HKUST. CSIT 6910A Report. iband - Musical Instrument App on Mobile Devices. Student: QIAN Li. Supervisor: Prof. David Rossiter

Cocoa Fundamentals Guide

Colligo Briefcase. for Good Technology. Administrator Guide

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008

MARKETING RESOURCES AND IDENTITY GUIDELINES - APP STORE

Manual Xcode Ios 5 Sdk 6 For Snow Leopard >>>CLICK HERE<<<

ios Certified Associate Developer (ICAD)

Transcription:

Mobile App Development ios Platform

Overview Introduction Development Environment & Tools App Store Pros & Cons Programming Recommendations Objective-C Primer Demo

What is ios? An operating system that is designed for: low power devices with touch interface mobile devices ease of use accessible computing nice & shiny UI with motion graphics

What is running ios? iphone ipad ipod touch

Worldwide iphone sales In total: 60 million!

http://techcrunch.com/2010/02/23/smartphone-iphone-sales-2009-gartner/

Development Environment & Tools

Environment Cocoa Touch Media Core Service Core OS

Environment Cocoa Touch Media Core Service Core OS OS X Kernel Mach 3.0 BSD Sockets Security Power Mgmt Keychain Certificates File System Bonjour ios

Environment Cocoa Touch Media Core Service Core OS Collections Address Book Networking File Access SQLite Core Location Net Services Threading Preferences URL utilities ios

Environment Cocoa Touch Media Core Service Core OS Core Audio OpenAL Audio Mixing JPG, PNG, TIFF PDF Quartz (2D) Audio Recording Core Animation Video Playback OpenGL ES ios

Environment Cocoa Touch Media Core Service Core OS Multi-Touch Events Multi-Touch Controls Accelerometer View Hierarchy Localization Alerts Web View People Picker Image Picker Camera ios

Environment Cocoa Touch Media Core Service Core OS ios Cocoa Media Core Service Core OS Mac OS X

Tools armv6/armv7 (iphone 4: 1 GHz underclocked to 800 Mhz) 128/256/512 MB DRAM PowerVR MBX Lite/PowerVR SGX535 with OpenGL ES 2.0 support 3.5 /9.7 multi-touch screen Camera with/without video recording capability Long Battery life: audio 40, video 10, talk 7 (in hours) Connectivity: Bluetooth, Wifi, A-GPS, Cellular

Tools You need an Intel-based Macintosh running Leopard (OS X 10.5.6 or later) - 10.6.4 for Xcode 4

Xcode iphone SDK Tools

Tools

Tools

Development process Simulator - free $99 on Device and App Store - Developer license $99 / year

Development process Register devices at provisioning portal http://developer.apple.com/iphone/ Get a developer certificate Create a new App ID Create a new provisioning profile Deploy your app on the phone with Xcode!

App Store

App Store >200,000 apps ~50% games under Apple s control: no porn, virus, spyware or junk free to host and sell free applications 30% charge for paid applications

Pros & Cons

Pros High and growing sales Highly standardized development environment High quality hardware

Cons Apple devices only May not be easy to be in mainstream Not so good in developer support Restrictive - Limited and No private API! - No middleman! - No access to system and hardware! - Objective-C

Programming Recommendations MVC design pattern! Use the highest level API if possible Do it in Apple s way Objective-C is mandatory for GUI development Objective-C is also needed for calling frameworks You can compile regular C++ classes in Objective- C++ mode

Objective-C Primer

Programming in Obj-C A reflective, object-oriented programming language Adds Smalltalk-style messaging to the C programming language A strict superset of C - any valid C program can be compiled with an Objective-C compiler - freely include C code within an Objective-C class The OO syntax is derived from Smalltalk

Message passing The Objective-C model of object-oriented programming: - MESSAGE PASSING to object instances - NO method calls The target of a message is resolved at RUNTIME The receiver object itself interprets the message

Message passing Method - identified by a selector SEL - a null-terminated string! - resolved to an IMP - a C function pointer NO TYPE CHECKING

Message passing Syntax in Objective-C: [obj method: argument]; Syntax in C++: obj->method(argument);

Quick Recap: Message passing In C & C++ simple method calls always resolved at compile time - Faster execution & compile-time checking Virtual method calls in C++ are routed at run-time: - Entry selected from the vtable based on the underlying object type - reasonably fast - no strings are involved

Interfaces (headers) Objective-C @interface classname : superclassname { // instance variables } +classmethod1; +(return_type)classmethod2; +(return_type)classmethod3: (param1_type)param1_varname; //Instance Method -(int)instancemethod1:(type1)param1 : (type2)param2; -(int)instancemethod2:(type1)param1 namedparameter:(type2)param2; @end C++ class classname: public superclassname { public: // instance variables // Class (static) functions static void* classmethod1(); static return_type classmethod2(); static return_type classmethod3 (param1_type param1_varname); // Instance (member) functions int instancemethod1(type1 param1, type2 param2); int instancemethod2(type1 param1, type2 param2); };

Implementation Objective-C (.m file) @implementation Classname +classmethod { // implementation } -(int)method:(int)i { return [self square_root: i]; } @end C++ (.cpp file) void* Classname::classMethod() { // implementation } int Classname::method(int i) { return square_root(i); }

Implementation Objective-C: The syntax allows pseudo-naming of arguments: -(int)changecolortored:(float)red green:(float) green blue:(float)blue [mycolor changecolortored:5.0 green:2.0 blue:6.0]; C++: mycolor->changecolorto(5.0,2.0,6.0);

Other features Instantiation: MyObject* o = [MyObject new]; Informal protocols: Delegates extension points in classes

Other features Formal protocols == C# / Java interfaces: @protocol Locking @end - (void)lock; - (void)unlock; SomeClass will implement this protocol: @interface SomeClass: SomeSuperClass <Locking> @end