To take Mobile Devices Programming, students are recommended to have:
- Basic knowledge of object-oriented programming (Java, C++ or Python).
- Familiarity with data structures and algorithms.
- Basic understanding of client-server architecture and web development.
- Basic notions of databases and data access in applications.
- General understanding of user interface (UI/UX) design and usability principles.
The Learning Outcomes of this subject are:
RA.01 (GI): Build computer applications based on client/server and web architectures, applying knowledge of data communication and remote services.
RA.02 (GI): Acquire the basic and necessary knowledge for the use of design patterns and best practices in mobile application development.
RA.03 (GI): Gain knowledge for programming applications with access to databases and handling local and remote data persistence.
RA.04 (GI): Gain knowledge for developing iOS applications with access to hardware and device features (geolocation, sensors, notifications, etc.).
RA.05 (TG): Understand usability and human-computer interaction principles for the practice of user-centered design (UI/UX) applied to practical projects.
RA.06 (TG): Develop the ability to work in teams and manage technological projects following Project-Based Learning (PBL) methodologies.
The course is structured into five main content blocks, following a logical and practical progression that allows students to gain a complete understanding of iOS app development:
1- Introduction to the iOS development environment
Xcode setup and simulator configuration.
Creating the first project.
Basic structure of an iOS application.
2- Swift programming language
Language fundamentals: types, control structures, functions, and classes.
Object-oriented programming and protocols.
Working with collections, optionals, and closures.
3- Core interface components
Views and view controllers.
Using UITableView, UICollectionView, and navigation controllers.
UI/UX design principles and best practices.
4- System and service integration
Permissions, MapKit, sensors, and hardware access.
Data persistence (UserDefaults, Core Data, remote databases).
Local and push notifications.
Live activities and HealthKit.
5- Advanced development and current trends
Dependency management with Swift Package Manager.
Introduction to SwiftUI as a modern UI framework.
Best practices, design patterns, and App Store publishing.
The course combines lectures, laboratory practice sessions, and individual student work, following a Project-Based Learning (PBL) methodology.
Throughout the semester, students take part in 14 face-to-face sessions of 3 hours each, combining theory, guided practice, and project development.
- The first hour of each week is devoted to lectures and use cases to introduce new concepts.
- The next two hours are hands-on sessions, where students apply the acquired knowledge through exercises, small projects, and practice labs.
- Students complete individual assignments and pair-based mini-projects, culminating in a final group project (two people per group) that integrates all course competencies in a fully functional iOS application.
- The Self-Paced Learning methodology is occasionally applied, requiring students to research and learn new content independently, based on teacher guidance.
This methodology emphasizes technological autonomy, collaborative work, and practical application of knowledge, mirroring the real-world environment of professional mobile app development.
The course assessment is continuous and combines weekly practical work with a final iOS app development project.
The final grade is calculated as follows:
Final grade = 40% × (average of practical exercises) + 60% × final project grade
To apply this formula, students must submit and pass all individual hands-on labs and the final project.
Otherwise, the course will be considered failed.
- Individual exercises (40%): small weekly labs to apply the knowledge from each topic. Evaluation criteria include functionality, code quality, technical understanding, and problem-solving skills.
- Final project (60%): team-based development (two students) of a full iOS app integrating all course topics (UI, data, hardware, notifications, etc.). Assessment includes architecture, design, functionality, documentation, and presentation.
Extraordinary call:
If any exercise or the project is not submitted or failed, students must resubmit a complete iOS project meeting all weekly requirements. In this case, the maximum grade obtainable will be 7/10.
All assignments must comply with the submission and originality rules: projects must be uploaded to eStudy, email submissions are not accepted, and any evidence of plagiarism results in automatic failure.
Assessment is based on weekly practical exercises and a final group project integrating all course topics.
Main evaluation criteria include:
- Functional correctness of exercises and the final app.
- Code quality, structure, and use of best practices.
- Interface design (UI/UX) and user experience.
- Problem-solving ability and technical initiative.
- Active participation and teamwork throughout the course.
Apple Inc. (2024). Swift Resources - Apple Developer. Available at: https://developer.apple.com/swift/resources/
Apple Inc. (2024). Human Interface Guidelines - iOS Design Resources. Available at: https://developer.apple.com/design/human-interface-guidelines/
Neuburg, M. (2023). Programming iOS 16: Dive Deep into Views, View Controllers, and Frameworks. O'Reilly Media.
Ackerman, S. (2023). Swift for Absolute Beginners: Learn to Develop iOS Apps. Apress.
Apple Inc. (2024). Xcode Documentation. https://developer.apple.com/documentation/xcode/
Apple Inc. (2024). SwiftUI Tutorials and Documentation. https://developer.apple.com/tutorials/swiftui
Raywenderlich Team (2023). iOS Apprentice: Beginning iOS Development with Swift. Razeware LLC.