iPhone Software Engineering
Engineer an inventive future developing Apple software apps. Consider end-users and device capability. Control the software lifecycle. Create desktop and mobile apps for enterprise and m-commerce specifications on Apple iOS and Apple Watch platforms.
Enrolments for this year have closed. Apply for 2022
Subjects may require attendance
QS RANKING 2022
Times Higher Education Ranking 2022
At the successful completion of this subject, students will be able to:
- Describe the limitations and challenges of working in a mobile and wireless environment as well as the commercial and research opportunities presented by these technologies;
- Describe and apply the different types of application models/architectures used to develop mobile software applications;
- Describe the components and structure of iPhone application development framework and know how and when to apply the different components to develop a working system;
- Describe and apply software patterns for the development of the application models described above;
- Describe and work within the capabilities and limitations of iPhone, iPad and Apple Watch devices;
- Design, implement and deploy iPhone, iPad and Apple Watch applications using an appropriate software development environment.
- Architecture and Devices
- Introduction to Swift: syntax, data types, arrays, application lifecycle
- Data and Control Structures, Parameter Passing, Functions, Strings/Characters, Project Templates
- More Data Structures, Properties, Dynamic Text, Generics and Building Interfaces
- Inheritance, Enclosures, Extensions and Constraints
- Table view, Patterns (MVC, delegate, data source), Storyboards
- Persistence (SQLite and CoreData), Directories and Files
- Networking, Threading and Grand Central Dispatch
- Working with JSON and XML
- Audio, Video, Graphics, Animation, Cameras and Sensors, Location API, Split Views, Popovers
- Security, Cloud and Application Localisation
- Unit Testing, Version Control with Git
- Preparing apps for deployment, Apple Developer Program
You must have successfully completed the following subject(s) before starting this subject:
You are recommended to have completed the following subjects(s) or have equivalent knowledge before starting this subject:
- Other requirements -
Stable broadband connection required to access online learning materials and live chat sessions/recordings. (note: mobile broadband users may have difficulties participating in live chat sessions)
You will need your own Mac desktop/notebook with an Intel processor running macOS 10.12 "Sierra" and Xcode 8.3 (includes iOS SDK). Access to an iOS device (iPhone, iPod touch or iPad) is not required for this course, as most activities can be completed using the Simulator provided in the SDK. You will have the option of deploying applications to your own iOS devices, and sharing applications with other course participants, under Apple's iOS University Program.
iPhone Software Engineering is concerned with the development of applications on Apple's iOS and watchOS platforms. SWIFT and the iOS 10 and 11 SDK will be used as a basis for teaching programming techniques and design patterns related to the development of standalone applications and mobile portals to enterprise and m-commerce systems.
Emphasis is placed on the processes, tools and frameworks required to develop applications for iPhone, iPad and Apple Watch devices. You will work at all stages of the software development life-cycle from inception through to implementation and testing. In doing so, you will be required to consider the impact of user characteristics, device capabilities, networking infrastructure and deployment environment, in order to develop software capable of meeting the requirements of stakeholders.
- Assignment 1 (25%)
- Assignment 2 (35%)
- Invigilated Exam (40%)