Course Syllabus

App Development 

DIS Logo


flutter-application-development.jpg  

Semester & Location:

Fall 2024 - DIS Stockholm

Type & Credits:

Elective Course - 3 credits

Major Disciplines:

Computer Science, Information Science, Design

Prerequisite(s):

One year of computer science, a course in algorithms and data structures, knowledge of one object-oriented programming language (such as Javascript, C#, Java, or C++). Basic knowledge of web development and databases is recommended.

Faculty Members:

Ivan Dimoski (current students please use the Canvas Inbox)

Program Contact:

csc-engr@disstockholm.se 

Program Director:

Natalia Landázuri, Ph.D.

Time & Place:

Tuesdays, 16:25 - 19:20 

Classroom: 1C-505

 

Course Description

Whether your company is a streaming giant or a startup for umbrella sharing, bringing your business and ideas to your customers, through smartphones and other computing devices, is essential. Thanks to the development of apps, smartphones have become an indispensable component of everyday activities. We no longer carry a phone around, but rather a complete computer capable of mediating, supporting, accelerating, and interpreting human needs. Apps are the heart of the popularity and utility of smartphones, making mobile development an increasingly lucrative field to work in. In addition, modern full-stack development has come a long way and we are now able to develop apps for multiple platforms at once, and deploy them to Android, iOS, Web, Desktop and more.

In this course, you will learn programming basics to develop cross-platform Android, iOS and Web mobile applications, with a strong focus on front-end and user interaction, with the ultimate goal of developing user-friendly and easy to products.

 

Learning Objectives

Cross-platform mobile development

Acquire a background in the processes involved in creating cross-platform mobile applications, from conception, to development, to publication.

Development tools

Flutter

Flutter is an open-source UI software development kit created by Google. It is used to build natively compiled applications for mobile, web, and desktop from a single codebase. Flutter uses the Dart programming language and provides a rich set of pre-designed widgets and tools that allow developers to create visually appealing, fast, and responsive user interfaces. It emphasizes fast development, expressive and flexible UI, and native performance.

Dart

Dart is an open-source, general-purpose programming language developed by Google. It is designed for building web, server, and mobile applications. Dart is optimized for client-side development, enabling developers to create fast, reliable, and scalable applications with a focus on productivity.

Firebase

Firebase is a comprehensive development platform by Google designed to help developers build, improve, and grow applications. It offers a suite of cloud-based services, including real-time databases, authentication, cloud storage, analytics, and serverless computing, among others. Firebase simplifies backend development, enabling developers to focus on creating high-quality user experiences without managing infrastructure. 

 

Faculty

Ivan Dimoski

Ivan Dimoski

Software engineer with 15+ years of experience with app development. Co-founder and lead engineer for Dreamseer, a journal app that interprets users dreams by leveraging natural language processing and generative AI technologies for text, image, sound, and video (2023–present). Previous experience include Tradera, Sweden's biggest circular marketplace and sustainable shopping app (2020–2023) and Truecaller, beloved caller ID and spam protection app with 1B+ downloads and 400M+ monthly active users (2015-2020). B.Sc. in Information Science and Computer Engineering, Ss. Cyril and Methodius University (2011). With DIS since 2024.

 

Readings

Additional sources include scientific papers, blog posts and videos available online.

 

Field Studies

Possible visits may include:
    • Spotify: https://open.spotify.com/
        ◦ The once tiny startup is now a tech giant. The Stockholm offices are where it all started.
    • Truecaller: https://www.truecaller.com/
        ◦ Truecaller identifies and blocks calls for over 400M+ active users with 1B+ downloads
    • Done: https://www.doneservices.se/
        ◦ Flutter first company that greatly simplifies the process of renovating a home

Approach to Teaching

We will implement a hands-on approach to learning that incorporate multiple opportunities to try and test implementations. Every theoretical concept covered in the course is accompanied by a practical exercise to deepen and interconnect understanding. Students will develop a final project, where they will utilize skills learned during the course to develop apps.

 

Expectations of the Students

  • Students should participate during lectures, peer-led oral presentations, discussions, group work and exercises.
  • Laptops should be used at all times for development, note‐taking, fact‐checking, or assignments in the classroom.
  • Reading must be done prior to the class session. A considerable part of the class depends on class discussions.
  • Students need to be present, arrive on time and participate to receive full credit. The final grade will be affected by unexcused absences and lack of participation. The participation grade will be reduced by 10 points (over 100) for every unexcused absence. Remember to be in class on time!
  • Classroom etiquette includes being respectful of other opinions, listening to others and entering a dialogue in a constructive manner.
  • Students are expected to ask relevant questions in regards to the material covered.
  • Students are expected to complete a series of out-of-class assignments

 

Evaluation 

To be eligible for a passing grade in this class, all of the assigned work must be completed.

Students are expected to turn in all the assignments on the due date. If an assignment is turned in after the due date, the grade of the assignment will be reduced by 10 points (over 100) for each day the submission is late.

During the semester students will work on multiple lab assignments to practice the skills learned. At the end of the semester, students will work on a final project in small teams to put all new skills in practice. Students will develop a fully functional full-stack application. The final project will be presented to the class, and tested by the peers.  Presentations and project materials will be part of the grade.

 

Grading

The factors influencing the final grade and the proportional importance of each factor is shown below:

Assignment

Percent

Participation (includes participation in class/exercises/projects/field studies, as well as behavior that is beneficial to the learning of peers)

10%

Mandatory assignments

40%

Final Project 1: Basic Functionality and Presentation

30%

Final Project 2: Extra Functionality

20%

 

Academic Regulations

Please make sure to read the Academic Regulations on the DIS website. There you will find regulations on:

DIS - Study Abroad in Scandinavia - www.DISabroad.org

 

Course Summary:

Date Details Due