Welcome
Structure
1.
Outline
3.
Schedule
4.
Lecture notes ⭐️
5.
Project teams
6.
Resources
7.
Contact us
Course Project
8.
Getting started
8.1.
Requirements
8.2.
Forming teams
8.3.
Picking a topic
8.4.
Examples
9.
Deliverables
9.1.
Project setup
9.2.
Project proposal
9.3.
Design proposal
9.4.
Project iterations
9.5.
Final submission
9.6.
Team assessment
Course Notes
10.
Introduction
11.
Project management
11.1.
Teamwork
11.2.
Being Agile
11.3.
GitLab projects
11.4.
Documentation
12.
Design thinking
13.
Software design
13.1.
Design principles
13.2.
Design patterns
13.3.
Architectural styles
13.5.
Software modelling
13.6.
Code structure
14.
Best practices
14.1.
Version control
14.2.
Build configuration
14.3.
Pair programming
14.4.
Code Reviews
14.5.
Refactoring
14.6.
Unit testing
14.7.
Software release
15.
Development
15.1.
Getting started
15.1.1.
Technology choices
15.1.2.
Toolchain installation
15.1.3.
Source code setup
15.2.
Kotlin programming
15.2.1.
Kotlin basics
15.2.2.
OO Kotlin
15.2.3.
Functional Kotlin
15.2.4.
Idiomatic Kotlin
15.2.5.
Concurrency
15.3.
Application styles
15.3.1.
Console
15.3.2.
Desktop
15.3.3.
Mobile
15.4.
Topics
15.4.1.
User interfaces
15.4.2.
Data storage
15.4.3.
Databases
15.4.4.
Networking
15.4.5.
Web services
15.4.6.
Cloud hosting
15.4.7.
Containerization
16.
Reference
16.1.
Books & videos
16.2.
Code samples
16.3.
Libraries & plugins
About this site
Light
Rust
Coal
Navy
Ayu
CS 346 Application Development
Topics
Table of Contents
User interfaces
Data storage
Databases
Networking
Web services
Cloud hosting
Containerization