An open API service indexing awesome lists of open source software.

https://github.com/developeracademy-postech/2025-c6-a15-a-iscreem

아이패드로 유튜브 강의를 들으며 공부하는 공대생의 몰입이 깨지지 않도록 AI가 요약하고 핵심 키워드를 보여주면서 바로 질문할 수 있는 앱
https://github.com/developeracademy-postech/2025-c6-a15-a-iscreem

ai apple applefoundationalmodels learning llm machine-learning swiftui

Last synced: 9 days ago
JSON representation

아이패드로 유튜브 강의를 들으며 공부하는 공대생의 몰입이 깨지지 않도록 AI가 요약하고 핵심 키워드를 보여주면서 바로 질문할 수 있는 앱

Awesome Lists containing this project

README

          

### ℹ️📋 [learningTool/AINO]

## 📲 Download

| 플랫폼 | 링크 |
|--------|------|
| iOS / iPadOS | [![Download on the App Store](https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/ko-kr?size=200x66)](https://apps.apple.com/kr/app/aino-%EC%95%84%EC%9D%B4%EB%85%B8-ai-%ED%95%99%EC%8A%B5%EB%85%B8%ED%8A%B8/id6754547683) |

## [Logo/Cover Image]
![Main](https://github.com/user-attachments/assets/1ec39b2d-e1db-4db9-9c27-77a1559c7cf5)

[Dark-teal]
tinted_teal
[Dark-purple]
tinted_purple
[Dark-amber]
tinted_amber

## [App statement]

아이패드로 유튜브 강의를 들으며 공부하는 대학생의 몰입이 깨지지 않도록 AI가 요약하고 핵심 키워드를 보여주면서 바로 질문할 수 있는 앱

## [App statement][Eng]

An app designed for university students studying with YouTube lectures on iPad — it helps maintain focus by using AI to summarize content, highlight key concepts, and enable instant questions without breaking immersion.

### 📞 Apple Intelligence (On-Device) Requirements
This app’s AI summarization uses Apple’s on-device foundation model (Apple Intelligence).

- **iPhone:** iPhone 16 lineup, iPhone 15 Pro/Pro Max
- **iPad:** iPad mini (A17 Pro), iPad models with **M1 or later**
- **Mac:** **M1 or later**
- Make sure **Apple Intelligence is enabled** and **Siri + device language** are set to a supported language (e.g., Korean).

> On devices that don’t meet these requirements, the app may fall back to server summarization (if configured) or disable summarization.

Refs: Apple Newsroom availability notes. [oai_citation:5‡Apple](https://www.apple.com/newsroom/2025/06/apple-elevates-the-iphone-experience-with-ios-26/)

## 📘 AINO - 아이노, AI 학습노트

유튜브 강의로 공부하는 대학생을 위한 **AI 학습노트 앱**입니다.
Apple Intelligence 기반 자동 요약 + 키워드 추출 + 질문/채팅까지 한 번에 지원합니다.

## 👨🏻‍💻👩🏻‍💻

---

| |
|:---:|
| ![iPad 01]() |
| ![iPad 02]() |
| ![iPad 03]() |
| ![iPad 04]() |
| ![iPad 05]() |

---

| | |
|:---:|:---:|
| ![iPhone 01](iPhone/iPhone%2016%20-%201.png) | ![iPhone 02](iPhone/iPhone%2016%20-%202.png) |
| ![iPhone 03](iPhone/iPhone%2016%20-%203.png) | ![iPhone 04](iPhone/iPhone%2016%20-%204.png) |
| ![iPhone 05](iPhone/iPhone%2016%20-%205.png) | |

---

## :pushpin: Features

- 영상 강의(유튜브 한정) 노트 저장
- 폴더별 노트 관리
- 강의 내용 구간별 요약
- 구간 요약시 맥락에 맞게 도출되는 주요 키워드
- 제미나이(이용자 api key 설정 후)AI를 통한 채팅 질문
- 키워드에 호버하여 빠른 채팅 입력
- 키워드 입력시 적당한 질문을 생성해주는 질문 생성 기능

## 🌿 Tree
```
.
├── AINO
│   ├── Assets.xcassets
│   │   ├── AccentColor.colorset
│   │   │   └── Contents.json
│   │   ├── AppIcon.appiconset
│   │   │   ├── Contents.json
│   │   │   ├── Main_1024.jpg
│   │   │   ├── tinted_amber.png
│   │   │   └── tinted_teal.png
│   │   ├── Contents.json
│   │   └── GlassBackdrop.imageset
│   ├── Components
│   │   ├── HeaderComponents.swift
│   │   ├── HelpView.swift
│   │   ├── KeywordViewComponent.swift
│   │   ├── NoteComponent.swift
│   │   └── QuestionBubbleComponent.swift
│   ├── Extensions
│   │   ├── Color+Extension.swift
│   │   ├── Font+Extension.swift
│   │   ├── View+Corners.swift
│   │   └── View+Keyboard.swift
│   ├── LearningToolApp.swift
│   ├── Models
│   │   ├── ChatMessage.swift
│   │   ├── Folder.swift
│   │   ├── LearningLogStore.swift
│   │   └── Note.swift
│   ├── Services
│   │   └── GeminiAPIService.swift
│   ├── ViewModels
│   │   ├── CaptionAnalyzer
│   │   │   ├── AppleFMSummarizer.swift
│   │   │   ├── CaptionAnalyzerViewModel.swift
│   │   │   ├── HTTPSummarizer.swift
│   │   │   ├── KeywordExtractor.swift
│   │   │   ├── SummaizerEngine.swift
│   │   │   ├── Summarizer.swift
│   │   │   └── VTTParser.swift
│   │   ├── HomeViewModel.swift
│   │   ├── QuestionViewModel.swift
│   │   ├── SidebarViewModel.swift
│   │   └── StudyViewModel.swift
│   ├── Views
│   │   ├── HomeView
│   │   │   ├── BaseLayoutScaler.swift
│   │   │   ├── CreateNoteView.swift
│   │   │   ├── DestructiveConfirmAlertView.swift
│   │   │   ├── FolderDeleteView.swift
│   │   │   ├── GridMode.swift
│   │   │   ├── Helpers.swift
│   │   │   ├── HomeView.swift
│   │   │   ├── ListMode.swift
│   │   │   ├── Overlay.swift
│   │   │   ├── SettingView.swift
│   │   │   ├── SidebarView.swift
│   │   │   ├── TrashService.swift
│   │   │   ├── TrashView.swift
│   │   │   ├── Utils
│   │   │   │   ├── KoreanSearchUtils.swift
│   │   │   │   └── NoteFormattingUtils.swift
│   │   │   └── ViewModelToggle.swift
│   │   ├── StudyHistoryView
│   │   │   └── StudyHistoryView.swift
│   │   └── StudyView
│   │   ├── ChatAreaView.swift
│   │   ├── ChatBubble.swift
│   │   ├── ChatBubbleView.swift
│   │   ├── KeywordView.swift
│   │   ├── MediaView.swift
│   │   ├── QuestionHeaderBar.swift
│   │   ├── QuestionInputBar.swift
│   │   ├── QuestionView.swift
│   │   ├── StudyView.swift
│   │   ├── SuggestionsSheetView.swift
│   │   ├── SummaryView.swift
│   │   └── UIEffects.swift
│   └── Web
│   ├── YouTubeThumbnail.swift
│   ├── YouTubeWebViewHost.swift
│   └── YouTubeWebViewRepresentable..swift
├── AINO.xcodeproj
│   ├── project.pbxproj
│   ├── project.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   ├── xcshareddata
│   │   │   └── swiftpm
│   │   │   └── configuration
│   │   └── xcuserdata
│   │   ├── coulson.xcuserdatad
│   │   │   └── UserInterfaceState.xcuserstate
│   │   └── mumin.xcuserdatad
│   │   └── UserInterfaceState.xcuserstate
│   └── xcuserdata
│   ├── coulson.xcuserdatad
│   │   ├── xcdebugger
│   │   │   └── Breakpoints_v2.xcbkptlist
│   │   └── xcschemes
│   │   └── xcschememanagement.plist
│   └── mumin.xcuserdatad
│   └── xcschemes
│   └── xcschememanagement.plist
├── architecture.svg
├── data-model.svg
├── flowchart-home-note-study-history-return.svg
├── iPad
│   ├── iPad Pro 11_ - 1.png
│   ├── iPad Pro 11_ - 2.png
│   ├── iPad Pro 11_ - 3.png
│   ├── iPad Pro 11_ - 4.png
│   └── iPad Pro 11_ - 5.png
├── iPhone
│   ├── iPhone 16 - 1.png
│   ├── iPhone 16 - 2.png
│   ├── iPhone 16 - 3.png
│   ├── iPhone 16 - 4.png
│   └── iPhone 16 - 5.png
├── LICENSE
├── README.md
├── sequenceDiagram.svg
└── StudyView-flowchart.svg

```

# 📊 Diagrams

빠르게 훑어보기:
- [Architecture](#architecture)
- [Data Model](#data-model)
- [App Flow (Home→Note→Study→History→Return)](#app-flow-homenotenotestudyhistoryreturn)
- [Sequence Diagram](#sequence-diagram)
- [StudyView Flow](#studyview-flow)

---

## Architecture
### 아키텍처(클래스/뷰/서비스) 다이어그램 소스
![Architecture Diagram](./architecture.svg "Architecture")

## Data Model
### 데이터/모델 다이어그램 소스
![Data Model Diagram](./data-model.svg "Data Model")

## App Flow (Home→Note→Study→History→Return)
### 홈 → 노트 선택 → 스터디(미디어/요약/키워드/질문) → 학습기록/복귀 흐름
![App Flow Diagram](./flowchart-home-note-study-history-return.svg "App Flow")

## StudyView Flow
### 자막 확보부터 요약·키워드·학습기록 저장까지
![StudyView Flowchart](./StudyView-flowchart.svg "StudyView Flow")

## Sequence Diagram
### 홈 → 노트 선택 → 스터디(미디어/요약/키워드/질문) → 학습기록/복귀
![Sequence Diagram](./sequenceDiagram.svg "Sequence Diagram")

## :framed_picture: Demo

Attach videos if you are available
스크린샷 2025-10-20 오후 6 41 10
스크린샷 2025-10-22 오후 6 42 02

https://github.com/user-attachments/assets/e98da29a-7157-47d5-a971-de8b2e455354

https://github.com/user-attachments/assets/dd83c9b4-400e-451e-8281-f5bc6a1d1a1e

https://github.com/user-attachments/assets/8d3b2d55-5ce6-4507-8468-94ee9e7dae59

## :sparkles: Skills & Tech Stack

• 언어/런타임: Swift 5.x, Swift Concurrency(async/await, Task, @MainActor)
• UI: SwiftUI (NavigationSplitView, UIViewRepresentable로 WKWebView 브리지)
• 데이터: SwiftData (@Model, ModelContext, 영속화/캐시)
• 웹: WebKit (WKWebView, WKUserScript, WKScriptMessageHandler로 JS ↔︎ 네이티브 브릿지)
• 요약/지능(옵션): Foundation Models 기반 요약(SystemLanguageModel 사용 가능 환경에서), 증분 요약 + 최종 병합
• 기반 프레임워크: Foundation(네트워킹 등), OSLog(로깅)
• 패키징: Swift Package Manager

![Platform](https://img.shields.io/badge/Platform-iOS%20%7C%20iPadOS-000000?logo=apple&logoColor=white)
![Target](https://img.shields.io/badge/Target-iOS%2018%2B-000000)
![Swift](https://img.shields.io/badge/Swift-5.x-F05138?logo=swift&logoColor=white)
![SwiftUI](https://img.shields.io/badge/SwiftUI-UI-0C7BDC)
![SwiftData](https://img.shields.io/badge/SwiftData-Persistence-0C7BDC)
![WebKit](https://img.shields.io/badge/WebKit-WKWebView-1F8A70)

## 📲 Download

| 플랫폼 | 링크 |
|--------|------|
| iOS / iPadOS | [![Download on the App Store](https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/ko-kr?size=200x66)](https://apps.apple.com/kr/app/aino-%EC%95%84%EC%9D%B4%EB%85%B8-ai-%ED%95%99%EC%8A%B5%EB%85%B8%ED%8A%B8/id6754547683) |

## 👥 Team

| Member | GitHub |
|---|---|
| Skyler | [![yulimmmm](https://img.shields.io/badge/GitHub-yulimmmm-181717?logo=github&logoColor=white)](https://github.com/yulimmmm) |
| Coulson | [![kimminung](https://img.shields.io/badge/GitHub-kimminung-181717?logo=github&logoColor=white)](https://github.com/kimminung) |
| Romak | [![Zunhokim](https://img.shields.io/badge/GitHub-Zunhokim-181717?logo=github&logoColor=white)](https://github.com/Zunhokim) |
| Emma | [![hbeen0129](https://img.shields.io/badge/GitHub-hbeen0129-181717?logo=github&logoColor=white)](https://github.com/hbeen0129) |
| Eifer | [![seungjaeyuu](https://img.shields.io/badge/GitHub-seungjaeyuu-181717?logo=github&logoColor=white)](https://github.com/seungjaeyuu) |
| Moomin | [![namoomin](https://img.shields.io/badge/GitHub-namoomin-181717?logo=github&logoColor=white)](https://github.com/namoomin) |