Course title, code: Developing Mobile Applications 1, GAINBAN-FEJLMOE1-1

Name and type of the study programme: Computer science engineering, BSc
Curriculum: 2021
Number of classes per week (lectures+seminars+labs): 2+0+2
Credits: 5
Theory: 50 %
Practice: 50 %
Recommended semester: 5
Study mode: full-time
Prerequisites: 100 cr
Evaluation type: term mark
Course category: required optional
Language: english
Responsible instructor: Dr. Bolla Kálmán Milán
Responsible department: Department of Information Technologies
Instructor(s): Dr. Bolla Kálmán Milán , Kovács Márk
Course objectives:
The aim of this course is to introduce the basics of application development for the Apple iOS platform using Swift programming language.
Course content - lectures:

Introduction to iOS: history, iOS architecture, development languages, frameworks. Introduction to development tool, XCode, emulator. Swift programming basics. iOS project architecture. UIKit controls, list display using TableView. SwiftUI introduction, controls. SwiftUI list view, navigation, REST API integration, persistent data storage with SwiftData.


Course content - labs:

Create user interfaces using UIKit and SwiftUI. Forms, list view, navigation implementation. Connecting to REST API, processing API response.

Acquired competences:
Knowledge:

- Ability to develop applications, client-server and WEB, mobile systems, multiplatform systems. - Ability to build on the basic knowledge acquired to acquire in-depth knowledge of a technical IT area, to work through the literature and to solve IT problems related to the area. - Communicate in English and Hungarian on technical issues and use the formal language of informatics in a creative way. - Continuously educate and keep abreast of developments in the IT profession.

Skills:

- Familiar with the main programming paradigms, programming languages and development tools. Knowledge includes information systems modelling, database systems design, computer network design, operation and implementation, intelligent systems features, mobile application development, modern general purpose operating systems management and IT security aspects - Knowledge of important software development methodologies, notation systems for IT designs and documentation. - Knowledge of IT and engineering vocabulary and terminology in Hungarian and English, at least at a basic level.

Attitude:

- It represents the professional principles of engineering and information technology in a credible manner. -Ability to learn new methods, programming languages and procedures and to master them at a proficiency level - Strives to work efficiently and to a high standard of quality.

Autonomy and responsibilities:

- Identify the shortcomings of the technologies used, the risks of the processes and initiate measures to reduce them. - With this knowledge, he/she has a security-conscious attitude, is aware of potential threats and opportunities for attack and is prepared to counter them.

Additional professional competences:


Requirements, evaluation, grading:
Mid-term study requirements:
Attending classes, reviewing and supplementing what you have heard at home based on the literature recommended in class. Theoretical and lab exams.
Exam requirements:

Study aids, laboratory background:

Xcode: https://developer.apple.com/xcode/ Git: https://git-scm.com/ Gitlab: https://gitlab.com/ Sourcetree: https://www.sourcetreeapp.com/

Compulsory readings:

[1] Start Developing iOS Apps (Swift) https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/

Recommended readings:

[1] M. Neuburg: iOS 12 Programming Fundamentals with Swift: Swift, Xcode, and Cocoa Basics, 1st edition, O'Reilly Media, 2018, ISBN-10: 1492044555, ISBN-13: 978-1492044550