IOS [ Swift ](22)
-
23.10.19 헬스장 커뮤니티 제작 - 테이블뷰 고찰
헬스인들만의 커뮤니티를 만들고싶었고 , 본격적인 파이어베이스 구현 전에 나의 역할이 조금 시간이남아 전체 UI디자인 수정과 추가기능을 조금 구현하게 되었다. 아래 탭바 컨트롤러의 커뮤니티탭을 누르면 테이블뷰상태의 여러 게시글을 더미데이터에서 받아와 표시하게되고 오른쪽위의 버튼 두개중 왼쪽버튼을 누르면 이렇게 GYMGLE로 변하며 ( 왼쪽 위 로고 ) GYMGLE전체의 커뮤니티를 이용하거나 , 우리 헬스장이용객 만의 커뮤니티를 이용하거나 ( 대학교 에타 처럼 ) 할 수 있게된다. 오른쪽 위의 연필모양을 누르면 글 작성 화면이 present된다. 코드를 작성하면서 어려웠던 점은 TableViewCell파일 안에있는 UI 를 경로를 잡아 view에있는 커뮤니티 전환버튼을 눌렀을때 hidden이 되게끔 해보려했..
2023.10.20 -
23.10.17 더미데이터를 이용한 데이터 구현 / 1주일차 프로젝트 회고 노트 작성 양식 만들고 작성해보기
오늘은 아침회의결과로 만들어진 UI에 계획해두었던 데이터를 집어넣어 보기로했다. FireBase를 활용한 실제 데이터를 이용해보기전 , 조금은 상세한 데이터계층구조를 확립하는게 중요할 것 같아서 각자 더미데이터를 이용해서 각자가 만든 UI페이지의 데이터를 구현하는것이 목표였다. 내가 맡았던 파트인 유저 루트뷰에서 필요한 데이터정보가 무엇인지 먼저 파악해보았는데 , 먼저 최상단에 이름데이터가 필요할것이고 , 아래에 최근공지사항 , 그리고 왼쪽 저번주 이용객 수와 오른쪽 현재 이용객 수 마지막으로 아래 상위퍼센테이지 ( 스크린샷 상 운동시간 ) 까지 총 5개의 데이터가 필요할 것 으로 판단되었다. 그래서 팀끼리 모델구조를 같이 만들어 두고 시작하는게 좋을것같아 제작해두었는데 , User모델에서 name과 s..
2023.10.18 -
23.09.21 core data / 개인과제 UI 완성
코어데이터는 유저데이터처럼 데이터를 저장할 수 있는 매체이나 , 유저 데이터보다 훨씬 다양한 형태, 많은 양의 정보를 저장할 수 있다. 공부를 해봤는데 아직 개념이 잘 잡히지 않는다. ㅜㅜ 자 먼저 코어 데이터를 쓰려면 command + n키로 파일을 생성해주는데 , Data Model 형식으로 생성해준다. 그럼 왼쪽Task2같은 아이콘의 파일이 생기는데 , 우리는 여기서 ENTITIES ( 엔티티 ) 를 지정할 수 있다. 이 엔티티가 집이고 , 오른쪽에있는 Attribute가 집에살고있는 사람 이라고 보면 될 것 같은데 , 여기서는 Task2 라는 집 안에 String역할을 하는 Title씨 , Boolean역할을 하는 isCompleted씨 , Date역할을 하는 createDate씨 등등이 상주하고..
2023.09.21 -
23.09.12 팀 프로젝트 DooDle 만들기 발표 / 완성본
저번주 팀프로젝트의 발표가 오늘로써 끝났다. 이번 팀 프로젝트는 유튜브 / mapkit을 사용한 킥보드 어플을 택1 하여 제작하는 것 이었는데 우리팀은 mapkit을 사용한 우리팀만의 아이덴티티를 가진 앱을 만들고싶었다. 그래서 열띤 아이디어 공유끝에 ... 과제의 주제와 사용자의 활용성 ( 쓰고싶게 만드는 앱 ) 을 모두 고려한 어플인 DooDle 을 개발하게 되었다. DooDle ( 낙서 ) 앱은 , 사용자의 현재위치를 기점으로 각자가 낙서를 남기어서 정보를주거나 소통을 할 수 있는 어플인데 예시로 설명을 해보자면 내 주변에서의 맛집을가거나 물건을 사고싶다거나 할때 주변 반경의 정보를 좋아요수에 비례하여 탐색할 수 있는 어플인 것이다. 어플 시연 영상을 보면 - 회원가입 창 - 로그인 창 ( 회원가입..
2023.09.12 -
23.08.14 팀 프로젝트 시작 / 인스타그램 앱 제작 ( 대략적인 구성 및 제작기 ) (1)
새로운 주가 시작되고 이번주부터는 팀 프로젝트를 또 하게되었다. 요번 주제는 SNS 앱 제작해보기. 우선 필수 구현목록을 팀원들끼리 나누어 분담하여 github 머지하는 방식을 채택하기로했다. 첫 목표로 노션에서 와이어프레임 제작과 , 역할분담 , 그리고 진행상황 공유약속 등을 진행하였다. 우선 나는 메인화면을 맡게되었는데, 메인화면이라고해서 단순히 ui ux만을 고민해야되는것이아닌 , 좋아요를 눌렀을때 올라가는 좋아요 수 라던가 포스팅의 ... 을 누르면 게시글을 수정하거나 삭제할 수 있다던가 , 위에 뜨는 스토리를 누르면 스토리창으로 들어가진다던가 하는 기능들의 추가가 핵심적으로 필요했다. 그래도 우선적으로 기본적인 틀을 잡아놓고 시작해야하니 ui를 먼저 제작해 보았다. 우선 반복되는 스토리창 즉 게..
2023.08.15 -
23.08.11 swift ui로 실로폰 제작
IBAction 으로 KeyPressed 즉 버튼눌렸을때의 상황을 만들어준 후 , 버튼이 눌리면 playsound가 되게 만들어준다. 미리 만들어 둔 사운드 에셋파일들을 활용하여 ( 실로폰 도레미파솔라시의 음 ) 각각의 음을 누르면 해당되는 음이 나오도록 지정해준다. ( sender.currentTitle! ) ⬆️실로폰 구현 영상
2023.08.15 -
23.08.10 sort & filter 함수 만들어보기 / 알고리즘 문제 - 영어가 싫어요
sort 라는 함수는 배열안의 문자나 숫자를 차례대로 오름&내림차순 정렬해주는 함수이다. 이 함수를 자체제작해서 만들어보려고 제작해보았다. func sort(number:[Int]) -> [Int]{ // 입력자가 입력하는값이 배열 [] [1,5,3,2] var answer:[Int] = [] for i in 0...(number.count-1){ // var numminus = (number.count-1) var iplus = i + 1 if i > iplus{ answer += [i] iplus + 1 }else { iplus + 1 } } return answer } 여러가지로 머리를 굴려봤는데 , 이게 맞는지는 테스트 해보지못하였지만 우선 코드..
2023.08.11 -
23.08.09 optional 개념정돈 / clouser 살짝이해해보기 / 알고리즘 n의 배수 고르기 / navigationView
우선 Optional이 지정되지않은값을 nil값으로 return 해주는 함수인것은 알고있었다. 근데 형식에대해서 조금 더 공부가 된 부분이 , throws 로 던져서 guard문으로 받는다는 개념. 즉 throws 는 " 이거 optional 일 수도 있어 " 라고 던져보는것이고 그 optional 예상 코드를 guard문 안에 넣어준다. 그리고 아래에 case 문들을 보면 에러코드들을 등록해놓은걸 볼 수 있는데, 개발자들은 항상 저런식으로 에러코드들을 한번 정리를 싹 하고 코드를 짜는게 좋다고한다. 그리고 저 에러코드들은 optional 즉 nil 값이 추출될때 사용하기에도 적절하기때문에 밀접한 관계가 있다고 볼 수 있다. 다음은 clouser 이다. 개인적으로 여태까지 배운 swift문법중 제일 이해..
2023.08.10 -
23.08.08 알고리즘 로그인성공? / table view 개념정돈
오늘의 알고리즘 문제 로그인 성공? import Foundation func solution(_ id_pw:[String], _ db:[[String]]) -> String { // index[0][1][2] 잘 활용할 것 for i in db{ if i[0] == id_pw[0]{ if i[1] == id_pw[1]{ return "login" }else{ return "wrong pw" } } } return "fail" } 먼저 문제를 보면 db 라는 데이터베이스 안에서 id_pw를 ( 아이디 비밀번호 ) 찾았을때 일치하면 login 불일치하면 fail 아이디만맞으면 wrong pw를 리턴해주는 함수를 만들어야한다. 일단 for문돌려서 db안에서 i를 탐색한다! 그다음 i의 값이 만약에 id_pw와..
2023.08.09 -
23.08.07 배운 문법들 개념 정리본 / 알고리즘 (직사각형 넓이 구하기)
함수의 형태 func 함수이름 (매개변수1이름: 매개변수1타입, 매개변수2이름: 매겨변수2타입 ...) -> 반환타입 { //함수 구현부 return 반환값 } func(펑션) 을 넣으면 함수 동작. 함수는 통상 기능구현을위해 사용. 매개변수를 넣는방법 - () 안에 123:Int, kiho:String, 1.5:Double 요런식으로 넣어준다. 반환 타입은 위에 적은 매개변수들을 어떤식으로 return 할 것 인지를 정해준다. 예를들어 123:Int -> String 이 된다면 123은 "123"으로 출력이 될 것이다. 전달 인자 // from과 to라는 전달인자레이블이 존재 // myName과 name이라는 매개변수 이름이 있는 welcome 함수 func welcome(from myname: Str..
2023.08.08