Archive/원격의료(project-ios) 11

[README.md] Mediku 🏥

🏥 Project - 비대면 의료 서비스를 목표로 건국대학교 병원의 병원 정보를 기반으로 비대면 예약 및 가족 관리를 위한 앱 - 개발 기간 : 2021년 5월 13일 ~ 6월 11일 - 1인 개발 프로젝트 - 깃허브 : https://github.com/lgvv/Mediku - 영상 : https://youtu.be/yAH1xnguA1U ✅ Enviroment - Swift 5 - iOS ✅ Library pod 'Firebase/Auth' pod 'Firebase/Database' ✅ 폴더구조 MVC 패턴으로 작성했습니다. ✅ 앱 UI 및 설명 🟠 홈화면 : 앱의 가장 메인 화면으로 진료가능한 과와 가족창 및 지도와 배너를 보여준다. 🟠 진료과 화면 : 진료과를 클릭했을 때, 나타나는 화면으로 선생님..

[iOS14] 텍스트필드 밑줄만 남기기

텍스트 필드에 아래 한줄만 주려고 했는데, 스토리보드 상에서는 도저히 방법을 찾을 수 없었음.. 그런데 문득 기초적인 웹 공부할 때 CSS 방식이 떠올라서 그와 관련한 방식으로 하는게 아닐까로 출발하여 방법을 찾고 코딩에 착수! 이분의 블로그가 큰 도움이 되었다 Mediku 프로젝트에서는 - ProfileTextController.swift 파일에 구현되어 있다. https://velog.io/@sso0022/iOS-TextField-%EA%B8%80%EC%9E%90%EC%88%98-%EC%A0%9C%ED%95%9C%ED%95%98%EA%B8%B0-%ED%95%9C%EA%B8%80 [iOS] TextField 글자수 제한하기 (한글) 오늘은 글자수 제한을 두는 textField 만들어보기 ~ velog.io

[iOS14] VC2 -> VC1 데이터 전달 (delegate)

VC2 -> VC1으로 데이터를 전달해야하는 경우가 있다. 방법이야 물론 많겠지만 delegate를 사용하기 전에는 주로 appDelegate를 활용하여 데이터를 지속적으로 건네 받았는데, 이제는 프로토콜을 적절히 활용하여 조금 더 세련되게 만들어 보려고 한다. 첫번째 뷰 컨트롤러 : ReceiveViewController (VC1) 두번째 뷰 컨트롤러 : SendViewController (VC2) VC2 에 프로토콜 정의한다. ToyProject 이름 : DelegateTest 천천히 읽어보면서 해보기 , 또한 Delegate에서 채택과 위임의 개념을 더 정확하게 알게되서 자주 사용해 보도록 하자. https://zeddios.tistory.com/310 iOS..

[iOS14] segue 및 화면 전환방식에 대한 고찰 및 unwind

이걸 작성하는 이유는 VC2 -> VC1으로 화면전환시 데이터 전달과 함께 불투명하게 사용하고 싶어서 작성하게 됨. 우선, 토이프로젝트를 통해 delegate를 이용하여 데이터 전달하는 방법은 성공!! 그러나 내 Mediku 프로젝트에는 뷰 전환 방식이 있어, 주로 스토리 보드에 identifier를 지정 후 전환하는 방식을 사용했다. 이렇게 사용하게된 이유는 화면 전환시 navigation controller가 없으면 modal로 처리되는 점과 무엇보다도 스토리보드 마다 계속 선을 연결해줘야해서 스토리보드 수가 많아지면 너무 복잡해지는 단점이 있다. 아무튼 주목해야할 부분은 .overCurrentContext 이 부분을 일단 보자. 이렇게 주어야 현재 컨텍스트가 보전되서 불투명 뷰를 만들 수 있다. 즉..

[iOS] DatePicker + Alert 커스터마이징

@IBAction func CSPicker(_ sender: Any) { //let dialog = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) let datePicker = UIDatePicker() datePicker.datePickerMode = .date datePicker.preferredDatePickerStyle = .wheels datePicker.locale = NSLocale(localeIdentifier: "ko_KO") as Locale // datePicker의 default 값이 영어이기 때문에 한글로 바꿔줘야한다. 그래서 이 방식으로 변경할 수 있다. let dateChooserAlert =..

[iOS14] 스크롤 뷰 구현

1. 스토리보드에서 ScrollView를 추가 2. 스크롤뷰의 constraint 사항은 0 0 0 0 설정 3. 스크롤 뷰 위에 뷰를 얹음 4. 뷰를 스크롤 뷰에게 equals widths 연결 ( 컨트롤 누른 상태로 스크롤 뷰로 드래그 ) 5. 뷰의 크기를 화면의 크기보다 더 길게 만듦 6. 뷰의 맨 위에 레이블을 하나 올린 후, 위 아래 constraint를 잡아줌. - > 여기까지 했다면 constraint 빨간불이 사라지고 드래그 가능해짐. 7. 뷰의 맨 아래에 레이블 하나를 올린 후, 위 아래 constraint를 잡아줌. 도움받은 사이트 https://m.blog.naver.com/PostView.naver?blogId=tngh818&logNo=221545378667&proxyReferer=..

[swift] 파이어베이스 + 딕셔너리 읽기

자 이글을 쓰는 이유는 파이어베이스에서 정보를 읽어와서 사용해야하는데 딕셔너리 형태로 저장해야함에 있어 자꾸 문제를 일으킴. 어떤 문제인가 살펴보았음. 우선 파이어베이스에는 JSON 트리 형식으로 저장되어있음 key - value 형식이라는 말인데 우리가 특정 노드의 값을 읽는다고 가정하면 그 노드에는 { "city": seoul, "id": anyid, "age": 10 } 이렇게 구성되어 있다고 치자. 이걸 하기 위해서는 var dict = [String:Any]() 로 선언하고 받아오면 되는데 내가 실수한 점 1. 딕셔너리에 대한 이해가 부족. 첫번째로 스위프트에서 딕셔너리에 대한 키값은 무조건!! hashable 해야하는데 그니까 쉽게 말해서 키 값으로 Any 타입을 사용할 수 없다는거다. 2. ..