일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GIT
- xcode
- flutter #state # stateful #stateless
- 오늘의 색상
- WidgetTree
- 조건문
- IOS
- Swift
- 청년취업사관학교후기
- 프로그래머스
- ImageSlider
- SwiftUI
- Masil
- process
- CS193p
- collectionView
- 백준
- UserDefault
- colorofdays
- 스위프트
- 스터디
- flutter
- stanford
- UIKit
- MVVM
- xml
- 알고리즘
- 코딩테스트
- 프로젝트회고
- 새싹후기
- Today
- Total
목록개발 이야기 (93)
개발을 시작하는 이야기
대한민국 여행의 모든것 대한민국 관광공사와, 문화재청의 데이터를 바탕으로 대한민국 여행에 필요한 정보들을 제공해 드립니다. 사용 기술 및 라이브러리 SwiftUI, MVVM, MapKit, Alamofire, Firebase Analytics, Crashlytics, Cloud Messaging 구현한 기능 SwiftUI를 활용하여 프로젝트 진행 MVVM 패턴 적용 MapKit API를 활용하여 지정된 아이템 검색 MapKit의 CoreLocation을 활용하여 주변의 관광지 포인트를 확인 SwiftXMLParser를 활용하여 XML 데이터를 파싱하여 활용 Firebase를 활용하여 Analytics와 Crashlytics를 활용 회고 및 이슈 Open Api의 고르지 않은 데이터 공공기관에서 관리하는..
Flutter 프롭젝트를 진행하다 보면 곳곳에서 BuildContext를 사용한다. 평상시에 사용할 때는 그저 위젯에 상태를 전달하는 방식으로 사용하고 있었다. Provider를 사용하거나, Widget을 구분해서 사용할 때는 별다른 무리가 없었다. 하지만 Localization을 사용할 때 약간의 문제가 발생 헸다. flutter_localizations 라이브러리를 사용해서 다국어를 처리하고 있었는데, 문제는 다국어 요청을 할 때, BuildContext를 보내주어야 한다는 것이다. 다만 이 context가 @override된 Widget 내부에서는 BuildContext를 받아서 사용할 수 있지만, 만일 값이 Widget 외부에 위치하고 있다면 BuildContext가 전달하는 방식을 알 수 없었다..
Futter를 하면서 가장 먼저 맞이한 신세계중 하나가 StatelessWidget 그리고 StatefulWidget 이였다. 이름 그대로 상태(State)가 있고 없는 것을 클래스를 생성하는 단계에서 구분해서 생성해주어야 한다. 만일 Stateless로 만들었는데, 상태 변화가 필요하다고 하면 몹시 귀찮게도 Stateful로 변경을 해주어야만 한다. StatelessWidget의 경에는 상태가 변함 없는 화면을 구현하는 경우에 사용하게 된다. import 'package:flutter/material.dart'; class FlutterTest extends StatelessWidget { final Color color; final String text; const FlutterTest(this.co..
SeSac x Memolease iOS Conference에 참석하고 왔더니 블로그 작성에 의욕이 다시 좀 생겨나서 남겨보는 글 아직 iOS 개발을 시작한지 1년이 조금 넘었는데, 어쩌다 보니 Flutter를 하게 되었다. 언젠가는 Flutter를 해봐야 겠다 마음은 먹고 있었지만, 이렇게 빨리 하게 될거라곤 생각은 못했다. 생각보다 자료가 많지도 않고, 급변하고 있는 Flutter라서 당장의 것들을 해치우기에 정신이 없지만, 그래도 틈틈히 글을 좀 남겨봐야겠다. +퇴근하고 개인 프로젝트를 스유로 하고 있는데 두개를 동시에 하니까 머리가 뽀사질것 같아서 쉼이 필요할때 글을 써봐야지 내가 생각하는 Flutter의 장단점 - 뭐 가장 큰 장점은 한번에 최대 세개의 플랫품을 개발할 수 있다는게 무엇보다 가장..
개인프로젝트를 진행하는데 아무리 커밋을 해도 잔디가 안심어지길래 뭐가 꼬인걸까 싶어서 Xcode부터 의심했었는데 문제는 깃이였다. 역시나 깃은 까탈스러워 PC의 깃에 저장된 이메일과 깃헙의 이메일이 달라서 생긴 오류였다. Terminal을 열어서 git config --list 입력하면 git에 저장된 설정이 모두 나온다. 이중에서 user.name, user.email이 github와 동일한지 여부를 확인해주면 된다. 변경은 git config --global user.email email@sample.com git config --global user.name userName 이렇게 변경해주면 끝. 예전 코로나로 격리하면서 재택근무할때 업무용 git으로 돌려놓고 복구하는것을 잊어서 생긴 불상사였다. ..
8가지 색상으로 하루를 기록합니다. 하루하루가 모여 일년의 색상이 모이게 됩니다. 최근 3일까지만 기록되니 잊지 마세요! 기억은 추억이 되어 변질되기 쉽거든요! 사용 기술 및 라이브러리 Swift, Codebase, AutoLayout, MVVM Observable, UserNotifications Snapkit, Then, RealmSwift Github, Figma, Notion 구현한 기능 MVVM패턴을 활용한 Codebase 작업 Realm을 활용한 데이터 관리 BottomSheet을 활용한 하단 뷰 관리 회고 및 이슈 프로젝트의 시작 프로젝트를 계획했던건 인스타그램에서 한 개시물을 봤을때였다. 세로로 구성된 화면은 휴대폰에 딱이였고, '하루하루 기록을 모은다'는 아이디어도 괜찮아보였다. 몇년전 ..
알고리즘 스터디를 진행하면서 문제는 어떻게 풀어도 설명할수가 없어서 이론도 함께 하나씩 정리해 가려고 작성하는글 퀵정렬 알고리즘의 개념 퀵 정렬은 불안정 정렬에 속하며, 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. 분할 정복 알고리즘의 하나로, 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방법이다. 합병 정렬과 달리 퀵 정렬은 리스트를 비균등하게 분할한다. 진행 과정 리스트 안에 있는 한 요소(피벗 pivot)를 선택한다. 피벗을 중심으로 피벗보다 작은 요소는 모두 피벗의 왼쪽으로, 큰 요소는 오른쪽으로 옮겨진다. 피벗을 제외한 왼쪽 리스트와 오른쪽 리스트를 다시 정리한다. 부분 리스트들이 더 이상 분할이 불가능 할 때까지 반복한다. 퀵 정렬 Swift 예제 코드 func divid..
2021년부터 Swift를 해온 나는 지금껏 Swift Package Manager (aka. SPM)를 사용해서 회사에가서 처음으로 Cocoa Pods을 마주했다. SeSac과정 진행중에 한번 설치하려고 했었으나 그당시 M1이 나오고 몇달 되지 않은 시기라 Homebrew도 겨우 설치했을 때였다. (물론 나의 어설픈 리눅스도 한몫 했지만) 그래서 Cocoa Pods도 마찬가지로 호환이 불안정했고 나를 비롯한 몇몇 M1유저들은 사용하지 못했었다. 아무튼 그런데 기존 프로젝트를 유지보수 및 업데이트를 해오다가 이번에 리팩토링을 추진하는 와중에 StoryBoard와 Code Base를 두고 고민을 하는데, 문득 Cocoa Pods과 SPM은 차이가 있을까? 그리고 혼용해서 사용해도 괜찮을까? 같은 의문이 들..
원래는 카카오맵 연동을 먼저 쓰려고 했는데 연동까지는 했는데 그 활용이 아직은 좀 더 해봐야 해서 일단 먼저 작성한 전화 연결을 먼저 작성해봄. iOS는 URL Scheme를 활용하여 메일, 전화, 문자 FaceTime등을 연결할 수 있었다. Apple Developer Documentation developer.apple.com URL Scheme 적용 방법 URL Scheme 문자열을 통해 URL 인스턴스를 만들어주고, canOpenURL(_ :) 메서드를 활용해서 URL 체계를 처리할 수 있는지 여부를 확인한다. let url = ... func canOpenURL(_ url: URL) -> Bool Apple Developer Documentation developer.apple.com 사용 가능..
지난번 글에 이어서 ProgressView 부터 이제는 ProgressView에서 Cell의 순서에 맞게 표시해주도록 설정을 해주어야 한다. Apple Developer Documentation developer.apple.com 일단 progress에서 현재 상황을 알려줄 변수를 하나 작성해주었다. //MARK: - Data var progress: Progress? 그리고 이제 진행상황에 맞추어 completedUnitCount를 업데이트 해주면 된다. 하지만 이때 주의할점은 최초 로드시에는 0이 아닌 1이여야 한다. 처음 로드하게 되면 첫 페이지가 보여지고 있어야 하기 때문이다. private func configureProgressView() { progressView.progress = 0.1 ..