일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Clean Code
- tableView
- SWIFT
- swift documentation
- Xcode
- collectionview
- 리펙토링
- uitableview
- 리팩토링
- 애니메이션
- Human interface guide
- Observable
- rxswift
- RxCocoa
- Refactoring
- 리펙터링
- combine
- uiscrollview
- MVVM
- clean architecture
- ios
- UICollectionView
- swiftUI
- Protocol
- 클린 코드
- 스위프트
- map
- HIG
- ribs
- UITextView
- Today
- Total
목록iOS 튜토리얼 (SwiftUI) (23)
김종권의 iOS 앱 개발 알아가기
* SwiftUI Sample 앱 살펴보기 전체 목차는 여기 참고TabView 개념SwiftUI에서의 TabView는 선언적으로 매우 직관적으로 사용이 가능Text 밑에 TabView를 표현하고 싶은 경우?아래 코드에 TabView 블록을 추가struct ContentView: View { var body: some View { Text("Hello, world!") .padding() }}(TabView 추가)struct ContentView: View { var body: some View { Text("Hello, world!") .padding() TabView { // 이제 화면 A, B, C 뷰를 넣고 싶은 경우, 차례로 연달아서 넣기struct Cont..
1. Navigation AppAbout Me, TabView 살펴보기Choose Your Own Story 살펴보기Date Planner 살펴보기 2. Presenting ContentOrganizing with GridsEditing GridsImage GalleryLaying Out Views3. Retrieving Content from a ServerMeme Creator4. Responding to User InputBubble LevelSeismometerRecognizing GesturesAnimating Shapes * 참고- https://developer.apple.com/tutorials/sample-apps/aboutme
* 프로젝트 파일은 애플 튜토리얼 사이트나 이전 포스팅 글 참고 macOS 실행 시 Sidebar가 들어나지 않는 문제 해결 방법 macOS를 실행하면 Sidebar를 한 번 닫았을 때 다시 열 수 없는 문제가 존재 iOS에서 List형태 안에 NavigationLink로 구현하면 macOS에서는 아래처럼 좌측에는 리스트, 우측에는 NavigationLink에 삽입한 화면이 등장 LandmarkCommands 라는 파일 생성 LandmarkCommands 안에 SidebarCommands()를 선언 import SwiftUI struct LandmarkCommands: Commands { var body: some Commands { SidebarCommands() } } LandmarksApp에 .co..
* 프로젝트 파일은 애플 튜토리얼 사이트나 이전 포스팅 글 참고 ToolBar, Picker로 맥북앱에 어울리는 UI 구현 방법 Toolbar 사용 방법 .toolbar로 바로 추가 LandmarkList.swift에 추가 수정 전 수정 후 var body: some View { NavigationView { List { Toggle(isOn: $showFavoritesOnly) { Text("Favorites only") } ForEach(filteredLandmarks) { landmark in NavigationLink { LandmarkDetail(landmark: landmark) } label: { LandmarkRow(landmark: landmark) } } } .navigationTitl..
* 프로젝트 파일은 애플 튜토리얼 사이트나 이전 포스팅 글 참고 macOS UI 구현 LandmarkList.swift .frame(minWidth)값을 주어서 뷰의 크기를 크게 설정 (단, 다양한 플랫폼을 제공하려면 watchOS에서 minWidth를 사용하면 화면이 이상하게 될것이므로 이것은 아래에서 수정 예정) 수정 전 수정 후 struct LandmarkList: View { @EnvironmentObject var modelData: ModelData @State private var showFavoritesOnly = false var filteredLandmarks: [Landmark] { modelData.landmarks.filter { landmark in (!showFavoritesO..
* 프로젝트 파일은 애플 튜토리얼 사이트나 이전 포스팅 글 참고 LandmarkDetail 화면 구현 방법 iOS 앱에서도 해당 화면과 유사한 화면을 만들었지만, 플랫폼마다 데이터를 표출하는 방법에는 각기 다른 방식이 필요 (애플 권장) 약간의 조정이나 조건부 compile을 통해 플랫폼 간 View를 재사용할 수 있지만 세부 사항 View같은 경우, iOS와 MacOS는 완전 다른 레이아웃을 가지고 있기 때문에 변경이 필요 차이점 - iOS는 작은 화면이고 macOS는 큰 화면이므로 에이아웃도 다르게해야 하는것이 좋음 (애플 권장) iOS 코드를 복사한 다음 MacOS 전용으로 수정하는 방식 코딩 MacLandmarks 폴더 하위에, MacLandmarks 타겟을 체크하고 생성 iOS의 Landmark..
* 프로젝트 파일은 애플 튜토리얼 사이트 참고 프로젝트에 macOS 타겟 추가하는 방법 앱을 미리 보고 실행 할 수 있으려면 macOS가 Monterey 이상에서만 가능 File > New > Target 선택 macOS > App 선택 생성 생겨난 파일들 확인 미리보기를 사용하기 위해서, scheme 설정 MacLandmarks > My Mac으로 설정 ContentView를 선택하여 preview 동작 확인 MacLandmarks 하위에 있는 MacLandmarksApp을 삭제 이전 포스팅 글에서 알아본 watchOS 앱과 마찬가지로 이미 있는 LandmarksApp를 사용할것이기 때문 iOS에서 만든 파일들을 macOS에서도 사용할 수 있도록 타겟 멤버십 추가 주의) 사진에는 LandmarkDeta..
* 애플워치에 UI 구현 방법 및 이전 코드는 이전 포스팅 글이나 애플 튜토리얼 페이지 참고 알림 UI 구현 이전 포스팅 글에서 알아본 애플 워치 타겟을 추가하면 자동으로 WatchKit Extension 폴더 하위에 NotificationController와 NotificationView가 생성 여기서 NotificationView에 UI를 구현하면 노티에 그대로 표출 NotificationView 구현 보통 APNs에서 오는 페이로드는 아래와 같은 json 내용으로 구성 aps 키값이 전체를 감싸고 있고, 그 안에 alert와 title, body가 존재 (표준 형식) { "aps":{ "alert":{ "title":"iOS 앱 개발 알아가기 타이틀", "body":"바디" }, "sound":3..