Git Product home page Git Product logo

mob-1.3-dynamic-ios-apps's Introduction

Dynamic iOS Apps

Course Description

This course covers the programming concepts needed to create dynamic iOS applications that can respond to user events and connect with a back end service. Key concepts include closures, callbacks and delegates. Students will understand how these constructs work and how they are used to pass information and execute blocks of code. Common communication patterns and how memory management works will also be explored. Students will also learn how to fetch and parse information from the Internet through APIs. They will interact with public APIs with and without authentication, make network requests in iOS using native Swift tools, model a networking layer in iOS, and parse a JSON network response.

Why you should know this

Most, if not all, mobile apps will need to communicate with an external service to work. It's important for you to know how to create this communication flow using native Swift tools. Communication within an app is also something you will need to implement as your apps get more complex. When you know different approaches to this problem, you'll be able to choose the one that best suits a specific need.

Prerequisites:

Course Specifics

Course Delivery: online | 7 weeks | 13 sessions

Course Credits: 3 units | 75 Total Hours

Learning Outcomes

Students by the end of the course will be able to ...

  1. Use closures, callbacks and delegates to pass information and execute code
  2. Identify and use different communication patterns in iOS
  3. Explain how memory management works in Swift
  4. Create a networking layer to make requests to public APIs with or without authentication
  5. Parse a JSON network response using the Codable protocol

Schedule

Course Dates: Tuesday, Mar 30 โ€“ Thursday, May 13, 2021 (7 weeks)

Class Times: Tuesday, Thursday at 1:45โ€“2:30pm (13 class sessions)

Class Date Topics
1 Tue, Mar 30 Closures and callbacks
2 Thu, Apr 1 No Class - Cesar Chavez
3 Tue, Apr 6 Communication patterns
3 Thu, Apr 8 Protocols & Delegation
4 Tue, Apr 13 Memory Management
5 Thu, Apr 15 JSON and the Codable Protocol
6 Tue, Apr 20 Lab - Review & Questions
7 Thu, Apr 22 URLSession
8 Tue, Apr 27 Pokedex solution
9 Thu, Apr 29 Authentication
10 Tue, May 4 Building a networking layer Pt 1
11 Thu, May 6 Generics
12 Tue, May 11 Building a networking layer Pt 2 + Firebase
13 Thu, May 13 Final Exam - study guide

Tutorials + Assignments Schedule

Name Type Date Assigned Due Date
Pomodoro App In-class Apr 5 Apr 12
Product Hunt tutorial Tutorial Apr 21 Apr 26
Pokedex assignment In-class Apr 22 Apr 28
Moviefy App Tutorial/Project May 4 May 16

Final project

Individual project covering core concepts from this course.

Evaluation

To pass this course you must meet the following requirements:

  • Complete all tutorials
  • Complete at least 80% of in-class assignments
  • Pass the final project with at least 70% on its rubric
  • Pass the final summative assessment according to the rubric as specified in this class
  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences

Resources

Information Resources

Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:

Make School Course Policies

mob-1.3-dynamic-ios-apps's People

Contributors

amelinagzz avatar gordoneliel avatar ibirnam avatar vanderdev1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mob-1.3-dynamic-ios-apps's Issues

Learning Objective Suggestions

Suggestions for adjusting Learning Objectives, let me know if you want to discuss.

Rename "Learning Objectives and Competencies" to just "Learning Objectives"

Students by the end of the course will be able to ...

  1. Understand and use closures Explain and use closures
  2. Use callbacks and delegation to pass information between views/objects
  3. Identify and use the target-action communication pattern in UIKit code
  4. Identify and use NSNotification in transferring information in an iOS app
  5. Understand how memory management works in Swift Explain how memory management works in Swift
  6. Interact with public APIs with or without authentication Use public APIs with or without authentication
  7. Make a network request in iOS using a networking layer Demonstrate how to make a network request in iOS using a networking layer
  8. Parse a JSON network response using native Swift tools

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.