Software Design for iOS Development
Introduction to Programming and Objective-C
Programming with Objective-C
Introduction to Mobile Apps
Mobile App Business Models
App Algorithms and Logic
Programming with iOS Frameworks
Design for a Small Screen
Designing Icons and Fonts
Databases, Network Connectivity, Version Control
Algorithms and Logic for Games
Designing the App Experience
Creating Simplified Visuals
App Production Studio I
Middleware and Prototyping
Programming with Swift
Quality Control and Tracking
Project Management and Marketing
App Production Studio II
MD101 - Software Design for iOS Development
This is an introductory course in software design for iOS apps. This process begins with a solid understanding of software design basics, flowcharting, user stories, and use cases. You will learn fundamental concepts, program flow, algorithms, and design patterns. You will be introduced to procedural and object-oriented programming. You will become familiar with the Foundation and UIKit Frameworks as the basis of app development.
MD102A - Introduction to Programming and Objective-C
This is an intensive introductory course in programming fundamentals and Objective-C. This process begins with a solid understanding of the components of a computer, their design, and how they function together to execute computer code. You will learn fundamental concepts, programming logic, syntax, and grammar and apply them to simple problems. You will learn the basics of assembly language, then move on to learning the Objective-C language. You will be provided with ample opportunities to convert theory into practice while learning.
MD102B - Programming with Objective-C
This intensive course will continue the study of Objective-C begun in MD102A. You will extend your knowledge of the language to pointers, arrays, and complex data types. You will learn how to create functions as the building blocks of code. You will learn about header files and libraries. You will learn how to allocate memory, to manipulate strings, to implement object-oriented constructs, and to program with threads. You will be provided with ample opportunities to convert theory into practice while continuing to learn Objective-C.
MD103 - Introduction to Mobile Apps
This course will introduce you to the principles of solid app design and will provide you with a comprehensive overview of the history of Apple Inc. and the products that revolutionized how we interacted with technology, forcing everyone in the industry to ‘Think Different’. You will learn why Apple computers, the iPod, iPad, and iPhone apply solid industrial design philosophy while seamlessly integrating app design principles so that the user experience is intuitive and transparent. You will explore the relatively short history of the app marketplace and learn how to critically analyze an app for good design and usability while understanding what makes an app successful. This is a hands-on course where you will be encouraged to use, experiment with, analyze, and compare a variety of apps.
MD105 - Mobile App Business Models
A wide variety of mobile app business models have been developed and deployed, not all successfully. In this course, you will learn how to manage a product by exploring the models used to generate revenue. You will learn how to identify a need by performing market research and identifying trends, creating a business strategy, matching revenue models to development and marketing budgets, and then creating a viable business model that will evolve in a changing market place. You will learn how to fund app development and you will be introduced to the business of work-for-hire and contracting.
MD201 - App Algorithms and Logic
You will learn how to effectively control an app by applying fundamental algorithms. We will begin with a standard app framework and move on from coding simple to complex algorithms. You will study and implement state machines, lists, search and sort algorithms, memory allocation, program logic, and string processing routines. You will learn about event-driven programming and design patterns. This course will conclude with an introduction to creating unit tests to verify your code.
MD202 - Programming with iOS Frameworks
This course will teach you how to use an API to implement the major functionality of an app. You will learn how to use the Frameworks provided by the iOS SDK to develop apps that take advantage of the features and services of an iOS device. You will study the four main Layers of the SDK and write code that makes use of their features and Frameworks.
MD203 - Design for a Small Screen
In this course you will learn how to create the framework and screen flow for an app with a focus on intuitive flow, usability, and touch gestures. You will learn to create user interface designs that fit the control scheme, visual elements, and background world in a way that optimizes the use of limited screen space.
MD204 - Designing Icons and Fonts
You will be introduced to the principles of user interface element design for mobile applications. The focus will be on understanding and applying the design principles to create functional, user intuitive, aesthetically pleasing interface elements for small screens so that the users’ goals can be accomplished.
MD205 - Consumer Psychology
This is an introduction to consumer psychology emphasizing basic principles of the biological bases of behaviour, learning, sensation, perception, motivation, and emotion in the context of user interface design and app-based digital media marketing. This course explores the psychology of gambling, probability-based judgements, impulsive behaviour, and stress-based risk-taking. You will study why users seek competition, social status and bragging rights, and why some users turn to trolling. You will be required to demonstrate how app design can influence app purchasing behaviour and app design ethics.
MD302 - Databases, Network Connectivity, Version Control
This course will be presented in three distinct parts. In the first part you will learn how to organize and use a database to manage user data. You will learn the SQL query language and SQLite functionality. In the second part of the course you will learn about network communications from the perspective of the iOS device. You will learn how to create an ad hoc local network to connect to another phone with Bluetooth. You will then use the Game Centre APIs to perform multi-player operations including matchmaking, invites, and posting to leader boards. In the final part of the course, you will learn how to use version control software for both code and binary assets.
MD301 - Algorithms and Logic for Games
This course will teach you the algorithms you need to create basic 2D games including shooters, mazes, platform, match-3, and word games. You will learn the game loop, physics of motion, collision detection and response, path finding, artificial intelligence, and how to match sets. You will create working examples of each game type through hands-on coding experience.
MD303 - Designing the App Experience
This course will teach you how to design an app that will be used by a casual user. You will learn to design a user experience that will allow for short multiple sessions spread over several days. You will apply design and programming skills so that your app design is user intuitive enabling game play to begin immediately. Inherent in your design and in the final app will be an experience that appeals to defined target market that reinforces predetermined user behaviour.
MD304 - Creating Simplified Visuals
This course explores the design and production of graphic elements for a small screen. You will apply the principles of graphic, user interface, character, and visual design in creating expressive visual elements by learning how to draw simplified visuals, cartoon images, expressive gestures, and emotional faces. In addition you will learn how to animate the characters, objects, and UI elements using software you have conceived and created in the context of delivering a superior user experience.
MD306 - App Production Studio I
This is a studio course in which you will be required to set and meet a number of production goals by completing the preproduction phase for an app of your choice. As part of this process you will create the conceptual foundation for an app and delineate an achievable project brief. Based on the proposed concept the brief will identity the intended app outcome, the target audience, feature set, technology, and required art assets. This will be the basis from which you will create a functional design for the app and the wireframes for the app’s flow. You will prototype the app’s functionality and determine its strengths and weakness with proposed remedies. Finally, you will create a plan for the production phase in Term 4 and begin work on the major functional areas.
MD401 - Middleware and Prototyping
In this course you will explore a variety of middleware. You will use these tools to rapidly prototype a selection of apps. Middleware will be selected from popular, comprehensive products used by industry. You will gain hands-on experience with middleware for cross-platform publishing with game engines, libraries for specific functionality, simplified programming languages, and tools.
MD402 - Programming with Swift
This course will teach you how to program using Swift, Apple’s new programming language that is intended to replace Objective-C. You will learn the language, basics, syntax, and differences from Objective-C. You will learn the new features of the language. You will have ample opportunity to apply theory to practice by creating sample programs for each new programming construct that you learn.
MD403 - Quality Control and Tracking
This course will be presented into two distinct but interrelated parts. In the first, you will learn the Quality Control process for testing and validating apps. This process includes knowledge of App Review Guidelines and the app submission process. Using bug tracking software you will learn how to create bug reports. In this course you will learn how to perform functionality, compliance, legal, and localization testing. You will also learn how to create test plans for each of these areas. Finally you will learn how to use code hooks to test the software’s internal operation. In the second part, you will learn how to track user data to improve the performance and profitability of the app. You will learn what kind of data to collect, how to embed tracking tags in the app, and how to send, store, and analyze the data you have collected.
MD405 - Project Management and Marketing
In this course, you will learn to apply Marketing Mix principles to increase an app’s exposure. You will learn how to set the apps price, create a marketing and promotional strategy, build a brand, and create customer loyalty. You will also learn how to create a project budget, build in control costs, and effectively manage all aspects of an app development project. To assist you in managing these processes you will be introduced to classic and agile methods of project management along with the software tools used to track all aspects of the app development and delivery cycle.
MD406 - App Production Studio II
In this final studio course you will complete the production and post-production phases of the app you began in Studio I. There are two distinct phases that you must successfully complete, production and post-production. In the production phase you will create the UI framework, the functional code, and the art assets. Then in the post-production phase you will debug your code and complete final project polishing tasks, which will result in a fully functional and marketable app.