0% found this document useful (0 votes)
15 views40 pages

Lec01 01 (Overview)

CIS 651: Mobile Application Programming, taught by Dr. Hong Martel, focuses on mobile app development using Swift, Dart, and Flutter, with a mix of theoretical and practical components. The course includes a grading policy based on assignments, a midterm, and a final project, with resources provided online and through various platforms. Students are expected to have access to a Mac for development, and academic integrity is emphasized throughout the course structure.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views40 pages

Lec01 01 (Overview)

CIS 651: Mobile Application Programming, taught by Dr. Hong Martel, focuses on mobile app development using Swift, Dart, and Flutter, with a mix of theoretical and practical components. The course includes a grading policy based on assignments, a midterm, and a final project, with resources provided online and through various platforms. Students are expected to have access to a Mac for development, and academic integrity is emphasized throughout the course structure.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40

CIS 651: Mobile Application Programming

Course Overview

Dr. Hong Martel

[email protected]
Course
●Overview
Instructor and TA Info ● Grading Policy

● Textbook/Course ● Communication
Material
● Academic Integrity and Honor
● Course Topics Policy

● Schedule ● Application Development


Environment
About Us
● Instructor
○ Dr. Hong Martel ([email protected])
○ Office Hours: Mon/Wed 6:35 to 7:35 PM or by appointment via Zoom
○ Location: In or outside Life Science 105 (or CST 0-124/125)
● TA/Grader
o TBA
o Office Hours: TBA
o Location: TBA
Extra Help
• Email Help ([email protected], TA email)
o Subject: CIS651-2025
o Ask your questions and describe your problems
o Zipped Project if necessary (clean project first)
Get to know you
• Survey
o Your knowledge level of Java
o Your knowledge level of C/C++
o Your knowledge level of Kotlin
o Your knowledge level of OOP
o Your knowledge level of Design Pattern
o Your experience w IntelliJ/Android Studio/VSC/Xcode IDE
o Your personal Mac

Optional:
o Your experience level of native Android/iOS app
programming
o Your experience level of cross-platform mobile app
programming
Classroom and
Labs
● Classroom: Life Science 105
o Mon/Wed 5:15 to 6:35 PM

● Mac Lab 1: CST 1-231


○ 42 Machines
○ Accessible on campus (card swipe) or remotely*

● Walk-in Mac Lab at CST 1-242B


○ 6 ~ 7 Machines
○ 24/7 accessible
○ Accessible on campus or remotely*

*Performance might be too slow for it to be practical. However, let me know if


you need Mac Remote Access so I could ask for updated instructions.
Hardware
Requires laptop/desktop to access BB for Question of the Day
Mac needed for Xcode IDE for homework and final project

What if I don’t have access to Mac


1. Online playground for swift coding practice only
http://online.swiftplayground.run/
2. ECS Mac Lab on campus access
3. Mac in iCloud
4. Mac on Windows
5. Buy a Mac if possible (system mem >= 8GB)
* Please be aware of extra effort needed if you don’t have a Mac
Textbook/Useful
● Materials
No textbook, and course materials available online and provided on Block Board
● Apple’s guide on Swift (ver. 6) and online swift playground
○ https://docs.swift.org/swift-book/index.html
○ http://online.swiftplayground.run/
● Xcode Basics Help
o https://developer.apple.com/documentation/xcode
● Apple Programming Tutorials for iOS SWIFTUI
o https://developer.apple.com/tutorials/swiftui
● Dart Tutorial
o https://dart.dev/guides
• Flutter for SwiftUI developers
o https://docs.flutter.dev/get-started/flutter-for/swiftui-devs
Course Topics
●(Tentative)
Swift and Dart Programming Language Concepts
○ Types, variables, loops, structures, classes, protocol, closure…

● Reactive UI Development (SwiftUI and/or Flutter/PWA)


● Architecture & Design Paradigm (MVVM)
● Functional and Object-Oriented Programming
● Views and View Hierarchy
● Table Views, Tab Bar, Master/detail, and Navigation
● Collection Views, Scroll Views, and Custom Views
● Persistence, Database (SQLite, Core Data), API, Libraries, Firebase
● GPS, Map, Sensors, Animation, Networking, Multi-threading
● Server-side Programming if time permits
● A “real-life” integration of numerous CS concepts & software implementation
life cycle
SwiftUI v.s. UIKit/Storyboard

https://sendbird.com/developer/tutorials/swiftui-vs-
SwiftUI v.s. UIKit/Storyboard
SwiftUI
announced at
WWDC2019,
starting Xcode
11, macOS
Catalina

https://sendbird.com/developer/tutorials/swiftui-vs-uikit
SwiftUI and/or UIKit/Storyboard?
https://medium.com/technology-nineleaps/swift-ui-or-storyboard-67
5ff2b40829
https://stackshare.io/swiftui
Native Mobile Apps
■ iOS
– Language: Swift
– IDE: Xcode, Dev Account with Apple
– Dev Platform: Mac Only
– Deploy: Apple Store
– Frequent upgrades necessary

■ Android
– Language: Kotlin or JAVA (deprecated)
– IDE: Android Studio (derived from IntelliJ)
– Dev Platform: Mac or Windows
– Deploy: Google Play Store
– Frequent upgrades necessary
What is Flutter
■ Flutter is framework created by Google.

■ A cross-platform framework used to develop application


for
– Android
– iOS
– Web
– Desktop

■ Uses Dart Programming Language (also by Google)


Who are Using Flutter?
• Google, the creator of Flutter, uses it for various
products and services.
• Alibaba, the e-commerce giant, uses Flutter to enhance
user experiences on its platforms.
• Tencent, the technology behemoth, uses Flutter for
crafting captivating apps.
• BMW, the car manufacturer, uses Flutter for its Drive
app.
• Reflectly, the personal journal app, uses Flutter for its
beautiful UI and animations.
• Square, the payment platform, uses Flutter for its
Seller and In-App Payments SDKs.
• iRobot, the robot vacuum cleaner company, uses
Flutter for its app that controls the Roomba 980.
• Betterment, the online investment platform, uses
Flutter for its app that helps users manage their
What is PWA?
■ Progressive Web Apps (PWAs) are web applications that leverage
modern web technologies and best practices to provide a reliable, engaging,
and app-like experience to users.
■ They combine the capabilities of web and native mobile apps, offering
features like offline access, push notifications, and fast loading times.
■ Several popular frameworks and libraries you can use for developing
Progressive Web Apps (PWAs)
– React
– Angular
– Vue.js
Who are using PWA – Brand
Names
https://www.mobiloud.com/blog/progressive-web-app-examples
SwiftUI and/or UIKit/Storyboard and/or Flutter/PWA ?

■ Conclusion?
o Native and cross-platform: SwiftUI and Flutter/PWA

■ Tentative
o Final Project – SwiftUI or Flutter/PWA
o Homework – SwiftUI and/or Flutter
HW1, HW2, and HW3 – SwiftUI and Flutter
HW4 and HW5: SwiftUI or Flutter
Course Schedule
(Tentative) First Day of Class
● 01/13 Monday:
● 03/01 Saturday: Final Project Proposal (App Idea)
● 03/09-16 Sun - Sun: Spring Break
● 03/17 Monday: Midterm
● 03/31 Mon,04/02 Wed: Final Project Design and
Presentation
● 04/26 Sunday: Final Project Presentation
● 04/27 Sunday: Final Project Submission &
Presentation
Grading Policy
Question of the Day (25x4) 15
5 Assignments (5x6) 30
Midterm (1x15) 15
Final Project Idea 5
Final Project Design 10
Final Project Impl, Report & Demo 25
Total
100
Question of the Day
● Will be given and has to be completed within the class
○ Not allowed to work together (Individual Work)
○ Not allowed to share password to students not attending
class
○ Violating the above constitutes academic violation

● You are awarded 3 points by default, 1 point more for a


correct answer
○ 0 points if not attempted in class
○ BB will record 0 first if your answer is incorrect. TA will
correct it to 3 later
Assignments
● Will be given on a regular schedule
○ Not allowed to work together (Individual Work)
○ Discussion and knowledge sharing totally fine

● Submit assignment project (source code) and simple demo


video to Blackboard
○ In demo video, show both code and corresponding
features of the App
Midterm
● Will be given in class 03/17 after Spring break
○ Not allowed to work together (Individual Work)
○ Questions similar to QOD (just a bit harder)

● Scope and review guide will be provided


Final

Project
Group or Individual Project (max 3 students)

● Your App should exhibit GOOD Design


○ Adherence to MVVB architecture
○ Intuitive Layout, User Friendly, adhere to iOS/Android tradition
○ Innovative, and Useful

● Make good use of technical features learned in and


outside class
Final Project Milestones
● Project/App Idea before Spring Break
o Discussion with instructor/grader are encouraged

● Project Design and Presentation after Spring Break

● Final Project Submission & Presentation


o Submit final report, source code, and demo video before your presentation
o Presentation & Demonstration of your app
Deadline and Late Submission
●Policy
All assignments must be submitted to blackboard electronically
before the stated due time
○ 5% penalty each late day
○ 0 when later than a week
○ Exceptions are only given when a clear evidence is
presented in advance or right after (within 3 days)
○ Contact instructor/Grader ASAP and within 3 days

● Final Project
○ No late submission will be accepted
Communicati
on
● Must be through SU official email (Subject Title CIS 651-2025)

● All submissions of assignments and final project to Blackboard, not


email

● Official announcement and notice will be made through Blackboard


○ Please check SU email and Blackboard daily

● Best way for Q&A is via email [email protected]


Some Guidelines
● Programming, Programming, Programming!
○ Run sample examples, modify them, explore them
○ Debug and fix problems
○ Challenge yourself by enriching and improving

● Learn through experiment and be inquisition

● Get Help!
○ Google, stack overflow and Hacking with Swift!
○ Ask questions
○ Talk to the instructor/grader when in doubt
Academic Integrity and Honor
Pledge
● DO NOT CHEAT, PLAGIARIZE, OR COMMIT FRAUD

● See the University’s academic-


integrity policy at
https://class.syr.edu/academic-integrit
y/
All academic integrity matters will be
reported
o Violation on assignment/exam: zero for
the assignment/exam
o Violation on project : zero for the project
Application Development
Environment
● Mac Machine with macOS X Monterey and higher
○ Create Apple ID (if you don’t have)

● Target System
○ iOS 15 and above

● IDE: Xcode 16 (macOS Sequoia, Version 15.2)


○ Xcode includes a built-in simulator
○ Memory-hungry tool (at least 8 GB of RAM)

● Programming Language
○ Swift 6
Apple Developer

Program
Don’t have to join the Apple Developer Program

● In order to submit your Apps to the App Store,


○ Have to enroll in the paid developer program
○ Apple Developer Program: $99 per year
○ Apple Developer Enterprise Program member
$299
○ See https://developer.apple.com/programs/ for
more info.
Questions?
What is iOS (iPhone
OS)?
● Apple’s mobile operating
system
● First released in 2007
○ Ver. 1 to Ver. 18
● Put each app in its own
protective shell ( > 2 million
apps) -- Sandbox
● Multi-touch
● Multitasking
What ’s in iOS?

SwiftUI Core OS
OSX Kernel Power Management
Media
Mach 3.0 Keychain Access

Core Services BS Certificates


D
Socket File System
Core OS s
Security Bonjour(discover services on a local area network)

19
What ’s in iOS?

SwiftUI Core Ser vices


Media Core Location
Collections
Net S er vices
Address Book
Core Services Threading
Networking
Preferences
File Access
Core OS URL Utilities
SQLit
e

20
What ’s in iOS?

SwiftUI Media
Core Audio JPEG, PNG, TIFF
Media
OpenA PD
L F
Core Services Audio Mixing Quartz (2D)
Audio Recording Core Animat
Core OS ion
Video Playback OpenGL
ES

21
What ’s in iOS?

SwiftUI SwiftUI
Multi-Touch Aler t s
Media
Core Mot ion WebView

Core Services View Hierarchy MapKit


Localiz Image Picker
Core OS ation
Controls Camera

22
Platform
Components
Tools X code 16

Language(s) let value = formatter.numberFromString( display.text!) ?.doubleValue

Frameworks
Foundation UIK it
SWIFTUI

Design S
trategy MVC/MVVM
23
Homework
● Read about Swift language
o pdf and links available under Information (BB)

● Experiment with it if you can (Playground platform)


o In xCode: File >> New >> Playground >> Blank
o You can code and run swift language statements
o You can explore the uploaded playground:
GuidedTour.playgaround

● Online Playground
o http://online.swiftplayground.run/
Let’s Explore Xcode
IDE….

You might also like