Mobile Application Development Some Real Life Practical Experience Words of Wisdom(?!) by Dave Westwater.

Slides:



Advertisements
Similar presentations
A Model for Infusing Engineering and Programming Concepts in Introduction to Computer Courses at Community Colleges. Intro to Robotics and Programming.
Advertisements

Deliver. Manage. Connect.. THE CONTENTS OF THIS PRESENTATION ARE CONFIDENTIAL.
Operating System.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
EMBEDDED SYSTEMS. Special purpose system which are used as either standalone or part of big system. An embedded product uses a microprocessor or microcontroller.
COMPUTER SYSTEM CAN BE DIVIDED INTO : 1- General Computer 2- Special Computer.
Multimedia Authoring II Final Project – Connect 4 Group 9: H.K.Chou.
David Janzen Software Engineering II – Scratch Thursday, July 9, 2009.
Fundamentals of Information Systems, Second Edition 1 Hardware and Software Chapter 2.
Dr. David Janzen Software Engineering 1 Monday, July 11, 2011.
Copyright © 2012 The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Chapter 05: System Software.
Group #5 1. Mereseini Rokodau 2. Eleanor Siavii 3. Jowella Vaka.
Objectives To conduct an AHECS led Survey to inform on current recruitment market trends To raise awareness of AHECS authority, on Graduate Career development,
Label Gallery Developer Series Overview. Label Gallery Developer Series Label Gallery Developer Series is a line of Label Gallery products designed for.
McGraw-Hill/Irwin Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 5 The System Unit.
Storage INFO 1. Key areas File Compression Types of Storage –Internal/External, Magnetic Storage, Hard Disks, Floppy, Optical Storage, Flash Memory, Online.
Mark O’Shea | Microsoft MVP Windows Expert – IT Pro Introducing The Windows 8.1 Update.
CPU The CPU is a microchip that is installed on a motherboard and acts as the computer’s brain - performing calculations and coordinating the hardware.
EMBEDDED SYSTEMS G.V.P.COLLEGE OF ENGINEERING Affiliated to J.N.T.U. By By D.Ramya Deepthi D.Ramya Deepthi & V.Soujanya V.Soujanya.
Introduction to Computers Personal Computing 10. What is a computer? Electronic device Performs instructions in a program Performs four functions –Accepts.
Project By:. 2 Agenda Introduction Problem Definition Proposed Solution Block Diagram Flowchart Technical Implementation Hardware & Software Requirements.
CS101: Introduction to Computing Instructors: Badre Munir, Usman Adeel, Zahid Irfan & Maria Riaz Faculty of Computer Science and Engineering GIK Institute.
Operating System. Architecture of Computer System Hardware Operating System (OS) Programming Language (e.g. PASCAL) Application Programs (e.g. WORD, EXCEL)
Embedded Systems Mohammad A. Gowayyed (c) 2012 Mohammad A. Gowayyed1.
Alumnas: María Sol Pérez Fernández y María Agustina Macchi.
What is system software and what are its parts? Programs that control operation of computer Two parts are operating systems utility programs.
Chapter 6 The System Unit.
1 Chapter 1.  What Is A Computer ? Computer is an electronic device, operating under the control of instructions stored in its own memory, that can accept.
MODULE 1 Computing Essentials © Paradigm Publishing, Inc.1.
GIANFRANCO BARBALACE Y FRANCO CAVIGLIA CATENAZZI1ºB Types and components of a computer systems.
Personal Computer Parts Open your web browser and using an online search engine, find and enter the name of the PC Part in the title box of each slide.
Computers Today Information taken from: Microsoft Office 97 Professional by Lawrence Press Microsoft Office 2003 by Glencoe Dell Dimension B110 2 iMac.
Mercedes Alonso, Luciana Pierangeli & Florencia Glasbauer.
Parts of the Computer System
TI-83 PLUS GRAPHING CALCULATOR TI 83 Plus, is enhanced with more than 1.5 MB of FLASH ROM memory. It stores up to 94 Handheld Software Applications (Apps),
TYPES AND COMPONENTS OF COMPUTER SYSTEMS Camila Rodríguez, Senior I B.
Hardware (CHP.2) By Natalie Negron. Hardware  The tangible, physical parts of the computer which work together to input, process, store and output data.
Computer Software Operating Systems – Programs. Computer Language - Review We learnt that computers are made up of millions of tiny switches that can.
Computer Basics Mr. Chu MPHS CIS 1.
Zondle is a games-based learning platform (desktop and mobile) that enables teachers and students to create, play and share games to support exactly their.
Chapter 2 – Part 1 Introduction To Windows Operating Systems CMPF 112 : COMPUTING SKILLS.
Copyright©2008 N.AlJaffan®KSU1 Introduction to Computers Created By: N.AlJaffan Modified By: N.AlShehri Chapter 1.
KIM-1Presentation Cass Lewart © KIM-1– Beginnings of Home Computing Age A 1976 development board for the 6502 microprocessor (cost - around $250)
Kingview and KingSCADA by Wellintech By Robert Murao 8/18/2010.
A Dummies Guide to computer memory. Differences between ROM and RAM ROMRAM Non volatileVolatile Used to boot up the computerUsed when the computer is.
Basic Computer Components Unit 2. What is a computer?  A computer is an electronic device that accepts raw data and processes it into information that.
Computer Systems Nat 4/5 Computing Science
Operating System.
Introduction to Computers
Computing Hardware.
Computer Hardware and Software
Technology Literacy Hardware.
Revision Name and Form.
Introduction to Computers
Do We Need Better Maps For Mobile Devices?
IB Computer Science Topic 2.1.1
Lecture 3 - Instruction Set - Al
Web Programming– UFCFB Lecture 3
تكنولوجيا التعليم (النظرية والتطبيق العملي)
Steps of a Lesson – Apply
Introduction to Computers
Computer Systems.
Introduction to Computers
Year 2 Summer Term Week 2 Lesson 1
Computing Essentials Module 1.
Computing Essentials Module 1.
Term 3 Lesson 5 When I grow up….
Term 3 Lesson 2 When I grow up….
Getting started with Power BI
Introduction to Computers
Presentation transcript:

Mobile Application Development Some Real Life Practical Experience Words of Wisdom(?!) by Dave Westwater

A Few Admissions I'm self taught, so I don't know everything! Been 'out of it' for a couple of years now, not up-to-date. Mostly games development. 3 years embedded C, 6 years of J2ME, no experience of other languages.

Lessons Learned (1) First job in industry with Nokia ( ) First lesson learned: There's no big secret to mobile application development! Languages are essentially the same as those for desktop applications with some restrictions: C/C++/C#, J2ME,... Project life-cycles are essentially the same.

Lessons Learned (2) Second Lesson: Be acutely aware of the environment! Using very limited resources: Screen size, processing power, memory (both flash-ROM and RAM), user interface, connectivity Can you write a game engine plus four games in <90kb? Better now of course. You've got it easy

Lessons Learned (3) Third Lesson: Optimise, optimise and optimise again... Particularly true in games programming Pushing the phone to the limit of CPU power and memory usage. You want to use every available resource. Comes with experience. A good book should give you helpful hints.

Lessons Learned (4) Second job in industry: 3G-Scene ( ) First real use of J2ME, first mobile casino Fourth Lesson: One instruction manual, twenty interpretations Sun release the JSR descriptions of APIs. Can be vague in places Manufacturers seem to have their own interpretation. Manufacturers and service providers drive JSR development

Lessons Learned (5) Fifth Lesson: Phone software is full of bugs. Not surprising! First in a new line is always the worst. Need to work around some problems Examples Samsung D500, HTTPConnection always fails when first opened, need to close then reopen it. Nokia 6600 series, early versions had problems with full screen mode

Lessons Learned (6) Sixth Lesson: Brute force testing on the device is the only assured way of ensuring the apps work on the phones! You can develop on emulators and it will work fine. Put it on a phone, it will fall over. Stems from lessons 4 and 5. Emulators are getting better. Nokia's S40 emulators were very good.

Lessons Learned (7) Seventh Lesson Debugging on the device is a bitch! No stdout or stderr stream for error output. Need to draw on the screen. In J2ME throw up alerts with the information. Do as much as you can on the emulator! Fail gracefully Nothing worse than having to remove the battery to reset the phone when an app crashes.

Lessons Learned (8) Eighth Lesson: Make the product work. You can't issue patches to fix the problem. Need to reissue the whole application. MIDP3 going to use shared libraries A consumer will be annoyed if they purchase an app that doesn't work. Not restricted to mobile apps.

Lessons Learned (9) Third job in industry: Tricast Solutions ( ), J2ME engine for flash-like media Ninth Lesson: Don't use a high-end phone as your baseline! You'll need two baseline phones for each screen size template One with lowest CPU power One with smallest memory Find the most restrictive devices you want your app on and do them first.

Lessons Learned (10) I tried hard to think of another one but couldn't. I could give lots more technical advice but I've kept this as general as possible.

Lessons Learned (10) I tried hard to think of another one but couldn't. I could give lots more technical advice but I've kept this as general as possible. Be prepared to do lots of porting! More porting. Less developing.

Some Links J2ME API documents: Community: Distribution: free, and it's not all sex.

Examples Demo games: Source code to be added to course website. Might be old code I hope it works!