Skip to content
This repository has been archived by the owner on Aug 27, 2024. It is now read-only.

Commit

Permalink
upload syllabus, course description, and my info
Browse files Browse the repository at this point in the history
  • Loading branch information
fyy26 committed Jan 17, 2024
1 parent 5ae0c79 commit 1f324b8
Show file tree
Hide file tree
Showing 3 changed files with 146 additions and 14 deletions.
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -130,4 +130,8 @@ dist
.pnp.*

out
.contentlayer
.contentlayer

# IDEs
.idea
.vscode
12 changes: 11 additions & 1 deletion content/pages/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@ customLayout: true

<Card title={<h2>Welcome</h2>} margin>
<Prose>
*\[insert course description here\]*
This project-oriented course focuses on application development for current iOS mobile
platforms using SwiftUI. In the initial stages, students will explore the fundamentals of
mobile app development, including iOS and Xcode basics, Swift programming, and SwiftUI
interface building. The curriculum progresses through advanced concepts like state management,
app lifecycle, sensor integration, networking, and data persistence. In the latter part of the
course, students work in teams to conceptualize and develop a significant mobile application.
Creativity and originality are highly encouraged!
</Prose>
</Card>

Expand Down Expand Up @@ -38,9 +44,13 @@ customLayout: true
{
name: "Yuying Fan",
section: "202",
flavorText: "Food, Music, Plants, Coding",
pennkey: "yuyingf",
school: "seas",
pronouns: "she/her",
github: "fyy26",
website: "https://www.linkedin.com/in/fanyuying/",
avatar: "https://lh3.googleusercontent.com/a/ACg8ocLFVWxE2df478AegQvN72qniqSQ5i-M9aUOYOLOlz1iyU8=s576-c-no",
},
]} />

Expand Down
142 changes: 130 additions & 12 deletions content/pages/syllabus.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,138 @@ title: Syllabus
activeMenuItem: syllabus
---

## Grading
## Course Structure
- **Lectures:** Once a week, 1.5 hours each.
- **Homework Assignments:** 5 assignments spread over Weeks 1-11.
- **Final Project:** Week 11 brainstorming, Weeks 12-14 working; teams of 3.

## Weekly Plan
### Week 1: Introduction to iOS Development and Xcode
- Overview of the iOS platform and its evolution.
- Installing Xcode and understanding its interface.
- Creating a simple "Hello, World!" app in Xcode.
- Introduction to the Swift Playgrounds for experimenting with Swift code.

**Homework 0 Assigned:** Download and set up XCode. Due in Week 2.

### Week 2: Swift Basics
- Swift language fundamentals: variables, constants, data types.
- Control Flow: if-else statements, loops, switch cases.
- Functions: declaration, parameters, return types.
- Structs, classes, and protocols.
- Basic error handling in Swift.

**Homework 0 Due.**

**Homework 1 Assigned:** Create a basic Swift playground that includes various data types, control flows, and a custom function. Due in Week 4.

### Week 3: SwiftUI Fundamentals
- Introduction to SwiftUI and its declarative syntax.
- Building basic user interfaces: Text, Image, Button.
- Understanding the SwiftUI layout system: VStack, HStack, ZStack.
- Modifiers: applying basic modifiers to SwiftUI views.
- Lists and scrolling views.
- **Sidebar:** Debugging tools in Xcode: breakpoints, console, memory graph debugger.

### Week 4: SwiftUI State Management
- Data passing and state management in views.
- State management in SwiftUI: @State, @Binding, @ObservedObject, @EnvironmentObject.
- Building forms and handling user input.
- Basic animations and transitions in SwiftUI.

**Homework 1 Due.**

### Week 5: App Lifecycle and Structure
- Understanding the iOS App Lifecycle: AppDelegate, SceneDelegate.
- Lifecycle events: onAppear, onDisappear.
- Navigation in SwiftUI: NavigationView, NavigationLink.
- Other structural views: TabView.
- Modal presentations: .sheet, .alert.

**Homework 2 Assigned:** Develop a SwiftUI application with multiple views and navigation, utilizing state management. Due in Week 7.

### Week 6: Custom Views & Event Handling
- GeometryReader, safe area.
- SwiftUI shapes, .fill/.stroke.
- Understanding event propagation and handling in iOS.
- Keyboard handling and text input events.
- Custom gesture recognition in SwiftUI.

### Week 7: Working with Sensors
- Accessing device sensors: GPS, accelerometer, gyroscope.
- Using Core Motion to access motion data.
- Handling location data with Core Location.
- Practical use cases of sensor data in apps.

Lorem ipsum dolor sit amet
**Homework 2 Due.**

Blah:
**Homework 3 Assigned:** Create an app that utilizes at least one device sensor, displaying relevant data to the user. Due in Week 9.

```swift
print("Hello, world!")
```
### Week 8: Networking in iOS
- Making HTTP requests and handling responses (async/await).
- Working with URLSession for network tasks.
- Parsing JSON data and integrating it into the app.
- Error handling and network best practices.

* sdf
* werqwer
* 123
### Week 9: Data Persistence
- Introduction to UserDefaults for simple data storage.
- Using Core Data for complex data models and persistent storage.
- CRUD operations in Core Data.
- File management: reading and writing files on the device.
- Other data storages: Keychain, SwiftData

1. sdfqwer
2. werqwer
3. qwerqwer
**Homework 3 Due.**

**Homework 4 Assigned:** Create an app that interacts with an API to fetch data and store the data in a local persistent storage. Due in Week 11.

### Week 10: UIKit & UIKit Integration with SwiftUI
- UIKit basics: MVC architecture in iOS.
- Integrating UIKit in SwiftUI: using UIViewRepresentable.
- User interaction in UIKit: event and input management.
- Combining UIKit & SwiftUI: navigation and data sharing strategies.

**Start Final Project Team Formation & Brainstorming.**

### Week 11: App Design and User Experience
- Design principles for mobile apps: clarity, efficiency, consistency.
- Designing for different screen sizes and orientations.
- Accessibility in iOS: making apps accessible to all users.
- Implementing dark mode support.
- Permission priming.

**Homework 4 Due.**

**Final Project Proposal Due.**

### Week 12: App Distribution and the App Store
- Code signing and provisioning profiles.
- Preparing an app for distribution: icons, launch screens, app metadata.
- App Store submission process and guidelines.
- Understanding the review process and managing app releases.

### Week 13: Bonus Lecture (TBD)
Potential Topics:
- Advanced UI/UX Design Concepts (Animations, Transitions, AR/voice-based Interfaces)
- Integrating Machine Learning with Core ML
- Augmented Reality with ARKit
- Designing Home Screen Widgets with WidgetKit
- Apple Watch and Wearable Integration
- Internet of Things (IoT) and HomeKit
-

### Week 14: Final Project Presentations

**Final Project Demo Slide Deck Due.**

## Final Project
- **Duration:** Last 4 weeks.
- **Team Composition:** 3 students per team.
- **Objective:** Develop a fully functional and creative iOS app.
- **Presentation:** Demonstrate the app and discuss design and development challenges.

## Grading
- **Attendance and Participation:** 10%
- **Homework Assignments:** 60%
- HW0: 20 points
- HW1-4: 100 points each
- **Final Project:** 30%

0 comments on commit 1f324b8

Please sign in to comment.