[SwiftUI] Geometry
·
Swift/정리
안녕하세요 불망입니다. 이번 글에서는 Geometry에 대해서 소개하겠습니다. SwiftUI에서 Geometry는 뷰가 화면에 배치되는 방법을 제어하는 데 사용되는 객체입니다. 이것은 뷰의 위치, 크기 및 방향을 결정하는 데 유용합니다. 이번 글에서는 SwiftUI에서 Geometry 객체를 사용하는 방법에 대해 설명하겠습니다. GeometryReader GeometryReader는 SwiftUI에서 제공하는 뷰 중 하나로, 부모 뷰가 자식 뷰에 대한 크기와 위치를 결정하는 방법을 제어할 수 있습니다. 즉, 자식 뷰의 위치, 크기 및 방향을 결정하는 데 사용됩니다. GeometryReader는 다음과 같이 작성될 수 있습니다. GeometryReader { geometry in // Geometry 객체..
[SwiftUI]Tab Animation
·
Swift/개발
안녕하세요 bulmang입니다!! 😄 오늘은 아카데미에 가기전에 다시 Swift 개발 공부를 어느정도 해야 될 것 같아서 인강을 듣고 공부하여 블로그에 정리를 하려고 합니다. 앱 설명 SwiftUI로 개발한 코드이며 Tab Animation에 대한 앱입니다. 앱 기능 선형 보간 공식을 이용하여 두 지점 사이의 값을 추정할 때 그 값을 두 지점과의 직선 거리에 따라 선형적으로 결정하는 방법이다. 이미지를 넘길때 Rectangle을 사용하여 indicator 넓이와 위치를 정하여 움직여준다. 문법 TabView: 탭을 구성하고 각 탭에 대한 콘텐츠를 추가 할 수 있음 GeometryReader: 화면에 보여지는 뷰(View)의 크기 및 위치 정보를 제공하는 뷰 자식 뷰에 대한 레이아웃 정보를 제공하므로, 자..
info.plist 사라지는 문제
·
Swift/정리
문제 플러터로 개발하다가 환경변수문제에 너무 힘들어서 초기화 하던 시절이 있었다. 현재는 거의 문제 해결 가능하지만 한달전에는 환경 설정이 너무 어려워서 초기화를 몇번 했을 때가 있었다. 프로젝트들을 깃에다가 올려 저장하여서 걱정없이 초기화를 하였지만 SwiftUI를 다시 공부하려고 git에서 내 TAICO프로젝트를 가져와서 실행하려는 순간 이러한 문구가 나왔다. Build input file cannot be found: '/Users/ha/Developer/SwiftUI/Taico/Taico/Info.plist'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it..
[NIKE clone] 3D 신발 에니메이션
·
Swift/개발
앱 설명 나이키 신발 쇼핑 어플로서 신발 사이즈와 3D 모델링이 된 신발 이미지를 가져와서 신발을 3D로 볼 수 있게합니다. 앱 기능 신발 이미지 시점 X축 이동 , Y축 이동 신발 사이즈 조정 장바구니 버튼 문법 SceneKit : 3D 이미지들을 사용하기 위해 가져오는 API SCNScene : 표시 가능한 3D장면을 구성하는 노드 계층 및 전역속성을 위한 컨테이너(애플 문서) / 내생각 String이나 Bool처럼 3D를 담당하는 문법 CGFloat : 비트수의 차이 32bit에서는 float으로 64bit에서는 Double로 처리 $변수 : 먼저 @Binding 또는 @State로 선언해준 변수들을 양방향으로 연결되도록 해줘야해서 ‘$’을 사용하여 바인디 시켜 값을 변경 zIndex : 겹치는 뷰..
애플 지도 클론코딩
·
Swift/개발
앱 설명 아이폰 내부 지도 api를 이용하여 지도를 구현 해봤습니다. 앱 기능 유저 위치 권한 허락 설정 검색 후 검색 리스트 누르면 위치 이동 현재 내 위치 표시 버튼 위성 , 그림 지도 전환 버튼 검색 한 곳 마커 찍기 문법 Identifiable : 객체 안에 id를 지정해주어 사용할 때 정확히 불러올 수 있게해줌 CLPlacemark : 종종 장소의 이름, 주소 및 기타 관련 정보를 포함하는 지리적 좌표를 가져옴 Mapkit : Apple Map을 사용 지도나 위성이미지, 좌표등 지도를 사용할 수 있음. CoreLocation : 장치의 지리적위치와 방향을 확인, 고도, 방향등 위치를 결정하는 서비스를 제공 사용자의 현재 위치에서의 크고 작은 변경을 정확하게 추적합니다 MapViewModel : ..
아이폰 키패드 클론코딩
·
Swift/개발
GitHub - bulmang/Iphone_Keypad: 아이폰 전화 키패드 앱 아이폰 전화 키패드 앱. Contribute to bulmang/Iphone_Keypad development by creating an account on GitHub. github.com 앱 설명 아이폰의 기본 전화 애플리케이션 중 키패드 부분입니다. 앱 기능 배열을 사용하여 번호버튼을 누르면 번호 입력 번호가 입력 되었을 때 번호추가 버튼과 삭제버튼 활성화 0번버튼을 길게 눌렀을 때 + 입력, 나머지 버튼은 입력 되지 않음. Tab 바를 만들어서 화면 전환 코드 MainView // // ContentView.swift // Iphone_Keypad // // Created by 하명관 on 2022/11/25. // ..
React Native Interpolation
·
Swift/개발
앱 설명 스크린을 터치하였을 때 좌표값을 구한다. 문법 UIScren : 디스플레이와 관련된 속성을 정의 onChanged : 제스처 값이 변경될 때 수행할 작업을 추가 preferredColorScheme : 기본 모드를 설정, 라이트모드, 다크모드 static : 일반적인 기능은 저장하는 것 , 모든 인스턴스에서 특정 프로퍼티 및 메서드를 공유 struct : 내부의 값이 전체 struct를 변경할때마다 전체 구조체가 자동적으로 변경. 상속이 불가능, 고유한 값 class : 단일 상속만 가능, 여러가지가 동일한 값을 가리킴. 클래스 내부의값이 변경되지만 다시 렌더링 되지는 않음. state : 특정 행동을 하면 자동으로 state를 변환시켜준다 인터페이스 업데이트, 뷰를 다시 렌더링 import S..
CustomRegistration
·
Swift/개발
GitHub - bulmang/CustomRegistration: 로그인, 가입화면 로그인, 가입화면. Contribute to bulmang/CustomRegistration development by creating an account on GitHub. github.com 앱 설명 로그인, 회원가입 페이지를 만들어봤습니다. 문법 var : 지역변수 || : or SecureField : Text가 암호화 되어 보여짐 TextField : Text를 입력받아 보여줌 private : 뷰안의 값이 계속 바뀌기 때문에 내부의 View만 사용이 가능하다. NavigationView : View간의 이동 Ellipse : 타원의 도형 Text : 글자 \n : 글자안에 칸 내리기 multilineTextAl..
AimatedTabIcon
·
Swift/개발
GitHub - bulmang/AnimatedTabIcon: 네번째 네번째. Contribute to bulmang/AnimatedTabIcon development by creating an account on GitHub. github.com 앱 설명 Lottie를 이용해서 아이콘을 눌렀을 때 움직임을 만들었습니다. light , dark 모드 둘다 구현해봤습니다. 문법 Lottie : Lottie는 JSON 형식의 파일을 벡터 기반 애니메이션으로 실시간 렌더링하는 모바일 라이브러리. Lottie를 사용해서 애니메이션의 재생, 크기 조정, 루프 적용, 속도 향상, 속도 감소, 역회전 및 대화형 스크러빙 하는 것이 가능하고, 애니메이션의 일부만 재생하거나, 반복할 수 있고 또한 Lottie는 UIVie..
배달의 민족 - 로그인 페이지
·
Swift/개발
앱 설명 배달의 민족 로그인 페이지를 클론 코딩해봤습니다. 커스텀 버튼, 커스텀 텍스트필드를 만들어 사용했습니다. 비밀번호 입력 필드는 SecureField를 사용했습니다. GitHub - bulmang/CustomLogin: 혼자 만들어 봤습니다. 혼자 만들어 봤습니다. Contribute to bulmang/CustomLogin development by creating an account on GitHub. github.com LoginView import SwiftUI struct LoginView: View { @State private var email:String = "" @State private var password:String = "" @State var isLinkActive = f..
BlogApp
·
Swift/개발
GitHub - bulmang/BlogApp: Blog 형식의 어플을 만들어봤습니다. Blog 형식의 어플을 만들어봤습니다. Contribute to bulmang/BlogApp development by creating an account on GitHub. github.com 앱 설명 블로그 UI 모습으로 ScrollView 이용 CardView struct를 만들어서 BlogModel 배열안 데이터들을 가지고 이미지 , 글 , 작성자 생성 문법 layoutpriority : 뷰 우선순위 import SwiftUI struct ContentView: View { var body: some View { VStack{ ScrollView{ ForEach(blogs) { blog in CardView(im..
[SwiftUi] 360도 회전 애니메이션
·
Swift/개발
GitHub - bulmang/360Animations: first first. Contribute to bulmang/360Animations development by creating an account on GitHub. github.com 문법 RoundedRectangle : 둥근 모서리 직사각형 Bool = true or false 참과 거짓을 사용할때 isAnimating ‘?’ → 참 ‘:’ →거짓 animation( , value:) : 애니메이션화를 자동으로 사용하게 해줌. rotationEffect : 회전효과 Angle : 각도 import SwiftUI struct ContentView: View { @State var isAnimating: Bool = false var body..
SwiftUI - ASKMO 앱 만들기 (SplashScreen)
·
Swift/개발
방학동안 과후배나동기끼리 프로젝트 어플, 웹사이트를 만들기로 하였습니다. 네이버지식in과 같은 어플이라고 생각하시면 됩니다. 지식in보다 조금 더 코딩질문에 가까운 사이트라고 생각하시면 편합니다. 일단 저는 프로젝트리더긴 하지만 저도 처음이고 후배들도 처음 공부하면서 프로젝트하는거라 완성이 될 지는 모르겠습니다. 하지만 완성보다는 공부를 하는 위주로 생각하고 있고 저는 백엔드와 SwiftUI를 같이 공부하며 풀스택 개발자가 되도록 노력할 것 입니다. 일단 앱을 시작하면 유명한 앱들은 자기의 아이콘을 잠깐 보여주고 실행이 됩니다. SplashScreen인데 저번에 공부했던것을 이용하여 만들어봤습니다. @State var isFinished = false State : 변화가 생기면 해당 변수의 값을 읽거나..
SplashScreen-DisneyApp 공부 [SwiftUI]
·
Swift/개발
HStack(spacing: -20 ){//Hstack 가로끼리 프레임 지정 x축 Image("disney") // asset파일에 저장한 이미지를 불러옴 .renderingMode(.template)//template - 이미지의 불투명 영역이 가진 본래의 색 무시하고 원하는 색으로 변경해 템플릿 이미지로 활용 .resizable() //적당한 크기로 변경 .aspectRatio(contentMode: .fit) //마찬가지로 크기변경 .frame(width: size.width / 1.9, height: size.width / 1.9) // 넓이와 높이 사이즈조정 .opacity(bowAnimation ? 1 : 0) Image("plus") // 플러스 이미지 지정 .renderingMode(.te..
SwiftUI - Animation (Add to Bag)
·
Swift/개발
이번에는 나이키어플 중 신발을 선택하여 장바구니에 추가되는 모습을 따라해봤습니다. \