Skip to content

calledBlu/ios-menu-app

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

61 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ—“๏ธ ์‹๋‹จ ์บ˜๋ฆฐ๋”

๋ชฉ์ฐจ

  1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ
  2. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ
  3. ์‹คํ–‰ ํ™”๋ฉด
  4. ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…
  5. ์ถ”ํ›„ ๊ฐœ์„ ์‚ฌํ•ญ
  6. ์ฐธ๊ณ  ๋งํฌ

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

  • ๊ธฐ๊ฐ„: 2023.05.18 ~ 2023.05.30
  • ์ฃผ์š” ๋‚ด์šฉ: ์บ˜๋ฆฐ๋”๋ฅผ ํ†ตํ•ด ์‹๋‹จ์„ ๋“ฑ๋ก, ํ™•์ธ, ์ˆ˜์ •, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ์•ฑ
    • ์Šคํ† ๋ฆฌ๋ณด๋“œ, ๋””์ž์ธ ์‹œ์•ˆ์„ ๊ฐ€์ง€๊ณ  ํ˜ผ์ž ์ง„ํ–‰ํ•œ ์ฒซ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ
    • ์Šคํ”Œ๋ž˜์‹œ / ์บ˜๋ฆฐ๋” / ์ผ๋ณ„ ์ƒ์„ธ / ๋ฉ”๋‰ด ์ƒ์„ธ / ๋ฉ”๋‰ด ์ˆ˜์ •ยท์‚ญ์ œ / ๋ฆฌ์ŠคํŠธ ๋“ฑ์˜ ํ™”๋ฉด์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Œ
  • ๊ธฐ์ˆ  ์Šคํƒ: Swift, UIKit, GitHub, Figma
  • ์‚ฌ์šฉํ•œ Skill, ์ง€์‹, ๋ฐฐ์šด ์ 
    • AutoLayout, CollectionView, StackView, CoreData, Delegate-Protocol ํŒจํ„ด ์‚ฌ์šฉ
      • ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์ด ๊ธฐ๋ณธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉ
    • UIView์— animation์„ ์ ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ์Šคํ”Œ๋ž˜์‹œ ๋ทฐ ๊ตฌํ˜„
    • ๊ธฐ๋Šฅ๋ช…์„ธ์„œ์ƒ ๊ธฐ๋Šฅ์€ ์กด์žฌํ•˜๋‚˜ ๋””์ž์ธ ์‹œ์•ˆ์— ์—†๋Š” ํ™”๋ฉด์„ ์ง์ ‘ ์„ค๊ณ„ยท๋””์ž์ธํ•˜์—ฌ ๊ฐœ๋ฐœํ•จ(๋ฉ”๋‰ด ์ƒ์„ธ, ๋ฉ”๋‰ด ์ˆ˜์ •ยท์‚ญ์ œ ํ™”๋ฉด)
    • GitHub์˜ Issue, Project์™€ SwiftLint๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๋ฉฐ ํ˜‘์—… ๋„๊ตฌ์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ• ์ˆ™์ง€

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

File Tree

ํŒŒ์ผ ํŠธ๋ฆฌ ๋ณด๊ธฐ (ํด๋ฆญ)
โ”œโ”€โ”€ MenuApp
โ”‚ย ย  โ”œโ”€โ”€ FoodMO+CoreDataClass.swift
โ”‚ย ย  โ”œโ”€โ”€ FoodMO+CoreDataProperties.swift
โ”‚ย ย  โ”œโ”€โ”€ LikeDayMO+CoreDataClass.swift
โ”‚ย ย  โ”œโ”€โ”€ LikeDayMO+CoreDataProperties.swift
โ”‚ย ย  โ”œโ”€โ”€ MenuApp
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Controller
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ HalfSizePresentationController.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ MenuTabBarController.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ViewController
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ Calendar
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ CalendarPickerViewController.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ CalendarViewController.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ Detail
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ AddMenuViewController.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ DayDetailViewController.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ MenuDetailViewController.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ Launch
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ LaunchViewController.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ List
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ ListViewController.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ PushAlert
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย          โ””โ”€โ”€ PushAlertViewController.swift
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Extension
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ DateFormatter+Extension.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ UIButton+Extension.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ UICollectionReusableView+Extension.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ UICollectionView+Extension.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ UILabel+Extension.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ UITabBarController+Extension.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ UIView+Extension.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ UNUserNotificationCenter+Extension.swift
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Model
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Calendar
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ CalendarDateFormat.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ DateProvider
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Interface
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ DateProvidable.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ implementation
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ DateProvider.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Day.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ LikeDay.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ MenuCalendar.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ MonthMetadata.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ CoreData
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ FoodCoreDataManager.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ LikeDayCoreDataManager.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ Model.xcdatamodeld
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ Model.xcdatamodel
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย          โ””โ”€โ”€ contents
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Error
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ CalendarDataError.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Menu
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ Food.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ MenuAlert
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ AlertKind.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Implementation
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ MenuReadyAlert.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ MenuStartAlert.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ Interface
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ AlertSendable.swift
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ViewCategory.swift
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ View
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ Calendar
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ CalendarCollectionViewCell.swift
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ CalendarTitleStackView.swift
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ CircleView.swift
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ WeekStackView.swift
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ Detail
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ ButtonStackView.swift
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ DetailTitleStackView.swift
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ MenuListCell.swift
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ MenuListCellView.swift
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ PopupView.swift
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ List
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ LikeListCell.swift
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ PushAlert
โ”‚ย ย  โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ PushAlertCell.swift
โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ RoundedStackView.swift
โ”‚ย ย  โ””โ”€โ”€ MenuAppTests
โ”‚ย ย      โ”œโ”€โ”€ CoreDataTests.swift
โ”‚ย ย      โ””โ”€โ”€ MenuAppTests.swift
โ””โ”€โ”€ README.md

์‹คํ–‰ ํ™”๋ฉด

์ดˆ๊ธฐ ํ™”๋ฉด
ํ‘ธ์‹œ์•Œ๋ฆผ ๊ถŒํ•œ์š”์ฒญ
๋ฉ”๋‰ด์ถ”๊ฐ€ ํ™”๋ฉด ๋ฉ”๋‰ด์ˆ˜์ • ํ™”๋ฉด
๋ฉ”๋‰ด์‚ญ์ œ ํ™”๋ฉด ์ €์žฅ๋œ ๋‚ ์งœ ๋ฆฌ์ŠคํŠธ ์•Œ๋ฆผ์„ค์ • ํ™”๋ฉด

ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

1๏ธโƒฃ Custom vs Original

๐Ÿ” ๋ฌธ์ œ์ 

๋””์ž์ธ ์‹œ์•ˆ์— ๋งž์ถ”์–ด Navigation bar๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•˜์˜€์œผ๋‚˜, Navigaion bar์˜ height๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” UINavigationBar์˜ height์™€ ๋‹ค๋ฆ„

โš’๏ธ ํ•ด๊ฒฐ๋ฐฉ์•ˆ

iOS 11 ์ดํ›„๋ถ€ํ„ฐ sizeThatFits(_:) ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•œ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๋†’์ด ์กฐ์ ˆ์ด ์ œํ•œ๋˜์—ˆ๊ณ  ์ด๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ๊ณ ์•ˆํ•ด ๋ณด์•˜์Œ

1. Navigation Bar ๋’ค์— ๋™์ผํ•œ ์ƒ‰์ƒ์˜ UIView๋ฅผ ๋ฐฐ์น˜ํ•˜๊ธฐ
2. largeTitleDisplayMode ์‚ฌ์šฉํ•˜๊ธฐ
3. Collection View, Stack View ๋“ฑ UIView๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Navigation Bar ์˜์—ญ์„ ์ปค์Šคํ…€ํ•˜๊ธฐ
4. Prompt๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ
5. SafeAreaInset์„ ์ถ”๊ฐ€ํ•˜๊ธฐ
6. ์ปค์Šคํ…€ํ•˜์ง€ ์•Š์€ ์ƒํƒœ์˜ Navigation Bar ์‚ฌ์šฉํ•˜๊ธฐ

๋””์ž์ธ ์‹œ์•ˆ์˜ ๋†’์ด๋ฅผ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ, Android์˜ Material Design์˜ ์ƒ๋‹จ ์•ฑ ๋ฐ”์˜ ๋†’์ด์™€ ๋™์ผํ•จ์„ ํ™•์ธ, ๋””์ž์ด๋„ˆ๊ฐ€ ๋””์ž์ธ ์‹œ iOS ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”์˜ ๊ธฐ๋ณธ ๋†’์ด๋ฅผ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•จ์„ ์ธ์ง€ํ•˜์˜€์Œ

์‚ฌ์šฉ์ž์˜ ๊ด€์ ์—์„œ ๊ณ ๋ คํ•  ๋•Œ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์ƒ‰๋‹ค๋ฅธ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์ต์ˆ™ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด ์˜ค๋˜ ๊ตฌ์กฐ๋ฅผ ๊ตณ์ด ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์„ ์ €ํ•ดํ•œ๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ฆผ

์œ„์˜ ๋ฐฉ๋ฒ• ์ค‘ ์ตœ์ข…์ ์œผ๋กœ ์ปค์Šคํ…€ํ•˜์ง€ ์•Š์€ ์ƒํƒœ์˜ Navigation Bar๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •


์ถ”ํ›„ ๊ฐœ์„ ์‚ฌํ•ญ

UI

  • lottie๋ฅผ ์‚ฌ์šฉ์—ฌ ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด ๊ฐœ์„ 
  • Apple์—์„œ ์ œ๊ณตํ•˜๋Š” Human Interface Guidlines๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ UI ๊ฐœ์„ 
  • ์บ˜๋ฆฐ๋”๊ฐ€ ์ขŒ์šฐ๋กœ ์Šคํฌ๋กค๋˜๋Š” ๊ฒฝ์šฐ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด์ „ยท๋‹ค์Œ๋‹ฌ์ด ๋ฏธ๋ฆฌ ๋ณด์ด๋„๋ก ๊ฐœ์„ 

Code

  • ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ ์ œ๊ฑฐ ๋ฐ ์ปจ๋ฒค์…˜ ํ†ต์ผ
  • ๋ฉ”๋‰ด ์‚ญ์ œ ์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”๋‰ด ์‚ญ์ œ์— ๋Œ€ํ•œ ์žฌํ™•์ธ์„ ์š”์ฒญํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€
  • ์‹์‚ฌ ์ค€๋น„ ๋ฐ ์‹œ์ž‘ ์•Œ๋ฆผ์— ์‹œ๊ฐ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • Flow Layout -> Compositional Layout์œผ๋กœ ๊ฐœ์„ 

์ฐธ๊ณ  ๋งํฌ

๋ธ”๋กœ๊ทธ

๊ณต์‹ ๋ฌธ์„œ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%