Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013



Similar documents
Transcription:

Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone revolution 2. Mobile Ecosystem 2.1. Contemporary Mobility platforms 2.2. Popular mobility platforms 2.3. Android 2.4. iphone 3. Comparing the various platforms 4. Application Types 4.1. Basic Architecture of Mobility applications 4.2. Native Applications 4.3. Web Applications 4.4. Web Applications vs Native Applications 4.5. Hybrid Applications 5. Mobility Hardware/Software Aspects 5.1. Introduction to Mobile hardware 5.2. Resource constraints 5.3. Device Fragmentation 5.4. Platform Fragmentation

Day 2 6. Introducing Android 6.1. Android Platform 6.2. Android Architecture and Software Stack 6.3. Android Virtual Machine (Dalvik VM) 7. Android Development Environment 7.1. Android SDK 7.2. Eclipse Android Developer Tools 7.3. Installing and Configuring the Software Development Kit 7.4. Anatomy of Eclipse Android project 7.5. Android SDK development tools 7.5.1. Android Emulator and Virtual Devices 7.5.2. Dalvik Debug Monitor Service (DDMS) 7.5.3. Android Debug Bridge (ADB) 7.5.4. Android Asset Packaging Tool 7.6. Hello Android Application Day 3 8. Java for Android 9. Patterns used by Android 9.1. Adapter Pattern 9.2. Singleton Pattern 9.3. Builder Pattern 9.4. Model View Controller Pattern 9.5. Observer Pattern 9.6. Factory Pattern

10. Application Building Blocks 10.1. Activities 10.2. Resources 10.3. Intents 10.4. Content Providers 10.5. Services Day 4 11. Android Application 11.1. Android Runtime Environment and Application behavior 11.2. Application Architecture 11.3. Physical Structure of an Android Application 11.4. Lifecycle of Application Components 11.5. Lifecycle of Application 11.6. Debugging Android application 12. User Interface Programming - Basics 12.1. UI Basics 12.2. Views & View Groups 12.3. Layouts & Layout Manager 12.4. XML based Layouts Day 5 13. User Interface Programming - Basics 13.1. Java based User Interfaces 13.2. Common Controls & Widgets 13.3. Custom Components 13.4. Dialogs 14. User Interface Programming - Advanced

14.1. Adapters and Adapter based Views 14.2. ListView 14.3. GridView 14.4. Tab Widget 14.5. Gallery Day 6 15. Menus 15.1. Basics 15.2. Types of Menus 15.3. XML based Menus 16. User Input Handling 16.1. User Events 16.2. Touch based input 16.3. Other forms of inputs 17. Styles and Themes 18. 2D Graphics, Animation & Fonts 18.1. Graphics Subsystem 18.2. Drawable Resources 18.3. Animation 18.4. Fonts Day 7 19. File I/O 19.1. Android File System 19.2. Saving Application State 19.3. Preferences 19.4. File Management Tools 20. Android Storage APIs

20.1. Introduction to SQLite 20.2. Working with SQLite databases 20.3. Content Providers in Depth 20.4. Creating a custom Content Provider Day 8 21. Multimedia programming 21.1. Playing Audio & Video 21.2. Recording Audio & Video 21.3. Camera 22. Background Work 22.1. Threading 22.2. Background Threads 22.3. AsyncTask 22.4. Handlers, Loopers and Runnables 22.5. Alarms Day 9 23. Services 23.1. Why use Services? 23.2. Architecture of an Android application using Services 23.3. Invoking Local Services 23.4. Creating Local Services 24. Location API 24.1. Introduction to GPS 24.2. Location Tracking 24.3. Region Monitoring 24.4. Using Location in Applications 24.5. Maps API

24.6. Using Maps in Applications Day 10 25. Android Networking, Connectivity and Telephony APIs 25.1. Managing Internet Connectivity 25.2. Wi-Fi 25.3. Telephony 25.4. Working with RESTful based web services. 26. Multiple Devices & Screen Resolutions Day 11 27. Inter-process Communication 27.1. Introduction to Binder 27.2. Introduction to AIDL 27.3. Remote Procedure Calls 27.4. Remote Services 28. Device fragmentation 28.1. Screen 28.1.1. Size 28.1.2. Screen 28.2. Input mechanism 28.2.1. Keyboard 28.2.2. Track Pad 28.2.3. DPad 28.2.4. Etc. 29. Introduction to Native Development 29.1. Why Native Development? 29.2. Working with NDK

Day 12 30. Mobile Web 30.1. Evolution of Mobile Web 30.2. Current Web Browsers and Toolkits 30.2.1. Browsers for different platforms 30.2.2. WebKit 30.3. Markups, Scripts and Standards 30.3.1. CSS 30.3.2. HTML 30.3.3. Javascript 30.4. Server side Detection and content Delivery Day 13 31. Designing Android Applications 31.1. Thinking about application design 31.2. Application User Interface design guidelines. 31.3. Styling UI 31.4. Popular UI design patterns 32. Application Performance 32.1. Measuring application performance. 32.2. Resolving Performance issues 32.3. Performance Guidelines Day 14 & 15 33. Software Testing Basics 33.1. Common terminology and concepts 33.2. Different types of Software testing

33.3. Testing Life cycle & Process 33.3.1. Tools for managing Testing process 33.4. Testing documentation basics 33.5. Unit Testing 34. Testing Android Applications 34.1. Unit Testing 34.1.1. Introduction to Test Driven Development 34.1.2. Unit testing basics 34.1.3. Frameworks for Unit Testing 34.2. Tools 34.3. Test management 34.4. Mobile testing best practices 34.5. Automation 35. Application Distribution 35.1. Mobility Application Business Model 35.2. Evolution of Software Distribution 35.2.1. Software Distribution 2.0 35.3. Android Application Distribution Day 16 36. Mobile Application Development Process 36.1. Desktop vs Mobile Software Development Process 36.2. Mobile Software Development Process 36.2.1. Design 36.2.2. Development 36.2.3. Testing 36.2.4. Deployment 36.2.5. Maintenance 37. Mobile Design

37.1. Importance of Design in mobile applications 38. Mobile Application Design Process 38.1. Story boarding 38.2. Prototypes 38.3. Application flow 39. Patterns and best practices of design 39.1. Android Application design

Mobility Introduction ios Duration 13 Working days Start Date 1 st Oct 2013 Day 1 40. Introduction to Mobility 40.1. Mobility Paradigm 40.2. Desktop to Mobile 40.3. Evolution of the Mobile 40.4. Smart phone revolution 41. Mobile Ecosystem 41.1. Contemporary Mobility platforms 41.2. Popular mobility platforms 41.3. Android 41.4. iphone 42. Comparing the various platforms 43. Application Types 43.1. Basic Architecture of Mobility applications 43.2. Native Applications 43.3. Web Applications 43.4. Web Applications vs Native Applications 43.5. Hybrid Applications 44. Mobility Hardware/Software Aspects 44.1. Introduction to Mobile hardware 44.2. Resource constraints 44.3. Device Fragmentation 44.4. Platform Fragmentation

Day 2 45. Introducing iphone & ios 45.1. iphone 45.2. ios Platform 45.3. ios Architecture and Software Stack 46. ios Development Environment 46.1. Introduction to ios SDK 46.2. Introduction to ios 4.x. 46.3. Using XCode 46.4. Using Interface Builder 46.5. Using iphone Simulator 47. Objective-C Basics 47.1. Fundamentals of the C Programming Language 47.1.1. Pointers 47.1.2. Loops 47.1.3. Conditionals 47.2. Object Oriented Programming using Objective-C 47.2.1. Classes & Objects 47.2.2. Properties 47.2.3. Protocols 47.2.4. Categories Day 3 48. Memory Management 48.1. Reference Counting 48.2. AutoreleasePools 49. Foundation Framework

49.1. Introduction to Foundation Framework 49.2. Working with basic Foundation Framework classes 49.2.1. NSString 49.2.2. NSArray 49.2.3. NSDictionary 50. XCode and Interface Builder in-depth 50.1. Source code management 50.2. Best practices 51. Debugging and trouble shooting Applications 51.1. XCode, gdb debugger 51.2. Static code analyzer. 51.3. Tracking and resolving issues. Day 4 52. Design Patterns used by Apple 52.1. Delegate Pattern 52.2. Model View Controller Pattern 52.3. Target-Action 52.4. Lazy Initialization 52.5. Singleton Pattern 52.6. Factory Pattern 53. Hello IPhone 53.1. Creating a simple application 53.2. Creating a simple application with User Interaction Day 5 54. iphone Application Basics 54.1. iphone Runtime environment 54.1.1. ios 3.x vs ios 4.x 54.2. Anatomy of an iphone application 54.3. Application Life cycle and States

54.3.1. Managing the life-cycle of an application 54.3.2. Managing the state of an application Day 6 55. User Interface Programming - Basics 55.1. Cocoa & Cocoa Touch Frameworks 55.2. Views 55.2.1. Creating Views using XIB vs Objective-C 55.3. Custom Views 55.4. Basic User Controls 55.4.1. Labels, Text Fields, Buttons, Sliders, Picker etc. 55.4.2. Building application screens 55.4.3. Adding user event handling Touch Events 55.5. View Controllers 55.5.1. Basics 55.5.2. View Controller Lice-cycle 55.5.3. View Controller Memory Management 55.5.4. MVC patter in applications 55.5.5. Creating a flow of the application. 55.6. Picker View 55.7. Alerts and Action Sheets 55.8. Toolbars Day 7 56. User Interface Programming Intermediate 56.1. Image View 56.2. Web View 56.2.1. Basic HTML rendering local and remote content. 56.2.2. CSS, Javascript 56.2.3.

56.3. Scroll View 56.4. Table Views 56.4.1. Basics 56.4.2. Populating TableView with data 56.4.3. Customizing TableView 56.4.4. TableView Cells 56.4.5. Customizing TableView Cells Day 8 57. User Interface Programming Advanced 57.1. Applications with Multiple Views 57.2. Animating View Switching 57.3. Simple View Controller for Multiple Views 58. Tab based applications (Tab Bar Controller) 59. Navigation based applications (Navigation Controller) Day 9 60. Events, Multi Touch and Gestures API 61. Sensors 61.1. Accelerometer 62. ipad Programming 62.1. Universal Application 62.2. SplitView Controller 62.3. Popover Controller 63. 2D Graphics & Animation 63.1. Quartz 2D & Core Graphics Day 10 64. Application Preferences

64.1. Application Settings and Preferences 64.2. Settings Bundle 64.3. Reading Settings 64.4. Modifying Settings Bundle 64.5. Implementing User Interface for setting preferences 65. File I/O 65.1. File System 65.2. Application Folders 65.3. File permissions 65.4. Moving around in the File System 65.5. Creating, Updating and Deleting Files 65.6. XML file parsing. 66. Data Persistance - Basics 66.1. Persisting Application Data 66.2. Property lists 66.3. Working with SQLite databases Day 11 67. Data Persistance - Advanced 67.1. Core Data 68. Location API & Maps 68.1. Core Location 68.2. Mapkit Day 12 69. Multimedia programming 69.1. Playing Audio & Video 69.2. Accessing ipod library 70. Networking, Connectivity etc.

70.1. Making web request 70.2. Restful services 71. Localization 71.1. Introduction to Localization and Internationalization 71.2. Making your applications Localized 71.3. NSLocale class Day 13 72. Mobile Web 72.1. Evolution of Mobile Web 72.2. Current Web Browsers and Toolkits 72.2.1. Browsers for different platforms 72.2.2. WebKit 72.3. Markups, Scripts and Standards 72.3.1. CSS 72.3.2. HTML 72.3.3. Javascript 72.4. Server side Detection and content Delivery 73. PhoneGap 73.1. Introduction to multi platform web application development 73.2. Using Phone Gap. 74. Designing iphone Applications 74.1. Apple Human Interface Guidelines 74.2. Popular UI design patterns 75. Mobile Application Design Process 75.1. Story boarding 75.2. Prototypes 75.3. Application flow 76. Application Performance 76.1. Measuring application performance.

76.2. Resolving Performance issues 76.3. Performance Guidelines 77. Testing iphone Applications 77.1. Unit Testing 77.1.1. Introduction to Test Driven Development 77.1.2. Unit testing basics 77.1.3. Frameworks for Unit Testing 77.2. Tools 77.3. Test management 77.4. Mobile testing best practices 77.5. Automation 78. Application Distribution 78.1. Mobility Application Business Model 78.2. Evolution of Software Distribution 78.2.1. Software Distribution 2.0 78.3. iphone Application Distribution