Flutter 시작
아이폰 네이티브 앱을 만들다가 안드로이드 앱도 같이 만들어보고 싶어서 같이 개발할 수 있는 프레임워크 Flutter를 시작하게 되었다 Flutter를 설치하고 사용하는 방법 정리한다(맥 기준) 개발환경 설정 1. 플러터 sdk 설치 brew install flutter를 통해서 플러터 sdk를 설치한다 2. VS CODE 설치 및 설...
아이폰 네이티브 앱을 만들다가 안드로이드 앱도 같이 만들어보고 싶어서 같이 개발할 수 있는 프레임워크 Flutter를 시작하게 되었다 Flutter를 설치하고 사용하는 방법 정리한다(맥 기준) 개발환경 설정 1. 플러터 sdk 설치 brew install flutter를 통해서 플러터 sdk를 설치한다 2. VS CODE 설치 및 설...
디자인 패턴이란 소프웨어를 설계할 때 특정 부분에서 자주 발생하는 고질적 문제들이 또 발생했을 때 해결하기 위한 일반적인 접근 방법을 제공한다 예를 들어서 옵저버 패턴은 객체들 간의 의존관계를 느슨하게 유지하면서 상태 변화를 통보할 수 있는데 이는 한 객체의 변경사항을 다른 객체에 전파하면서 객체간 의존성을 제거할 수 있다 또한 코드의 가독성, 재사용...
데이터를 주고 받기 위해 api를 이용한다 이때 SwiftUI에서는 기본으로 제공하는 URLSession과 패키지를 깔아서 사용하는 Alamofire가 있다 프로젝트 도중 2개를 혼용해서 사용했는데 각각의 장점과 단점을 알아볼려고 한다 URLSession URLSession는 애플에서 기본적으로 제공하는 네트워크 라이브러리이다 별도의 패키지...
동시성은 여러 작업을 병렬로 수행하는 소프트웨어 기능으로 정의할 수 있다 스위프트 언어에서 구조화된 동시성 기능을 살펴보고 이 기능을 이용해서 앱 프로젝트에 멀티태스킹을 지원할 수 있다 애플리케이션 메인 스레드 앱이 처음 시작될 때 런타임 시스템은 보통 앱이 기본적으로 실행되는 단일 스레드(메인 스레드)를 생성한다 메인 스레드를 사용해서 시간이 걸...
대용량 파일이나 api 통신을 할 때 진행율을 표시해야 할 경우가 있다 이럴때 프로그래스뷰를 사용해서 진행율을 표시할 수 있다 기본적인 프로그래스 뷰도 있지만 사용자 정의 프로그래스 뷰를 생성할 수 있다 Progressview 추가하기 프로그래스 뷰의 기본 값은 원형을 도는 표시가 되며 언제 끝나는지 모르는 불확정적인 프로그래스 뷰를 표시할 ...
프로젝트 도중 이미지를 서버에서 받는데 aws를 사용하고 있어서 버킷을 이용하다 보니 url된 이미지를 표시해야 했다 애플에서는 이럴 때 사용할 수 있는 AsyncImage를 제공한다 AsyncImage 사용법은 매우 간단하다 AsyncImage(url: URL(string: "https://example.com/icon.png")) { phas...
멀티컬럼 그리드란 여러개의 열을 가지는 그리드 레이아웃을 의미한다 콘텐츠를 여러 열로 나누어 배치해 가독성을 높이고 공간을 효율적으로 사용할 수 있게 한다 swiftUI에서 LazyVGrid, LazyHGrid, GridItem의 세가지 뷰를 가지고 있다 SwiftUI의 그리드 LazyVGrid(columns: [GridItem], alignmen...
콘텍스트 메뉴는 생소하게 들리지만 사용자가 뷰를 길게 눌렀을 때 나타나는 메뉴를 의미한다 일반적으로 Text뷰와 Image 뷰를 포함하고 선택했을 때 동작을 수행하도록 구성된 Button 뷰를 포함한다 콘텐츠 뷰 만들기 롱 프레스를 할 뷰를 생성한다 import SwiftUI struct ContentView: View { @S...
TabView 컴포넌트는 탭 바에 있는 아이템을 사용자가 선택하거나 페이지 뷰 탭 스타일을 사용할 때 스와이프 동작을 만들어 여러 하위 뷰들 사이를 이동할 수 있게 해준다 TabView 생성하기 import SwiftUI struct ContentView: View { var body: some View { TabVie...
Alamofire는 swift에서 REST API를 쉽게 하기위해 만들어진 패키지이다 pod으로 설치가 가능하고 add/package를 통해서 프로젝트에 다운 받을 수 있다 Alamofire 패키지 설치 add package를 선택 오른쪽 주소 창에 패키지 github 주소 “https://github.com/Alamofire/Al...