본문 바로가기
반응형

전체 글322

[iOS] Static Library만들기와 사용 1. 프로젝트 만들기 Xcode에서 Static 라이브러리를 선택하고 언어를 선택한다. 오브젝트C는 언어가 그지같으니 스위프트 선택 그럼 이렇게 프로젝트가 생성되는데 열심히 코드를 작성해주자 2. 빌드하기 빌드 타겟을 정해주고 Product->build 혹은 Start버튼으로 빌드 해주자. 여기서 주의할건, iOS, iOS 시뮬레이터, 아이패드, 맥북등 타겟마다 다 따로 설정해줘서 빌드해야 한다. 본인이 원하는 타겟에 따라 적절히 선택해주자 빌드가 완료되면 Product -> show Build Folder in Finder를 선택해주자. 그럼 아래와 같이 파일들이 나온다 여기서 봐야할건 .a 파일과 swiftmodule이다. 둘다 사용되므로 다 챙기자! 3. 다른 프로젝트에서 사용하기 먼저 아래에 Bu.. 2024. 2. 8.
iOS에서 상하단에 색이 생길 때 해결방법 1. 문제의 원인 아주 간단하다. Scaffold 바로 위에 SafeArea를 설정하면 아이폰에서 상하단에 흰색이나 검은색이 생긴다 2. 해결방법 SafeArea를 body로 옮겨주자 2024. 2. 3.
PageRouteBuilder에서 iOS backSwipe가 안될 때 https://github.com/flutter/flutter/issues/47441 Cupertino back gesture are disabled when using PageRouteBuilder · Issue #47441 · flutter/flutter Use case I am using PageRouteBuilder to add fade transition to some of my routes. I've noticed however that the swipe to go back on IOS is not working when doing so! Which is something I'm used to ... github.com 1. 문제점 PageRouteBuider를 이용해 화면전환시 애니메이션을 .. 2024. 2. 3.
Bottom에서 Pull to refresh하기 방법을 찾아보다가 결론은 직접 만들어서 써야 한다. 아이디어는 다음과 같다. 스크롤 컨트롤러의 position값을 추적해 offset을 구한다 offset을 0에서 1.1 사이로 nomarlize한다 refresh indicator를 partially하게 0.1단위 간격으로 값을 보내어 위젯을 다시 그리도록 한다 1.1이 될 경우 데이터를 불러오고 refresh indicaotr를 full로 그린다. 대충 코드로 설명하는게 편할듯 먼저 일단 나의 위젯이 사이즈가 너무 커져서 그냥 setState할경우 디버그모드에서 버벅이는게 보였다. 고로 하위 위젯만 rebuild 될 수 있도록 StreamController와 StreamBuilder를 활용하기로 하였다. double _bounceProgress = 0.. 2024. 1. 31.
3차원 회전행렬 구하기 및 캘리브레이션 가속도 센서를 캘리브레이션 할 일이 생겨서 만들어 보았다. 지피티는 신이다. 아래 함수들 전부 검증해보고 제대로 동작하는 것 확인하였다. data class Vector3D(val x: Double, val y: Double, val z: Double) fun normalize(vector: Vector3D): Vector3D { val length = sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z) return Vector3D(vector.x / length, vector.y / length, vector.z / length) } fun dotProduct(vector1: Vector3D, vector2: Vector3D): .. 2024. 1. 26.
Flutter와 파이어베이스로 게시판 만들때 부딪힌 경험들 게시판 만들 일이 있어서 flutter와 파이어베이스로 만들고 있다. 직접 처음부터 전부 만들어보니 생각보다 많이 어렵다. 게시판 만들 때 이렇게나 많은 것들을 고려해야 할 줄 누가 알았을 까... 아래는 개발하면서 부딪힌 문제들 1. 제목과 내용의 데이터는 분리해야 한다 어찌보면 너무 당연한 내용이다. 제목은 짧고, 내용은 크다. 두 데이터를 한꺼번에 묶는다면 쿼리하는데 속도 문제가 생길 것 이다. 그러면 어떻게 해결할 것 인가? 정답은 내용을 subCollection으로 두는것 이다. 파이어베이스는 doc을 가져올 때 doc 안에 subCollection이 있다면, 이 subCollection안의 데이터는 가져오지 않는다. subCollection안에 데이터까지 가져오면 쿼리 속도에 문제가 생기기 때.. 2024. 1. 25.
Delay가 있는 TweenAnimationBuilder 관련된 위젯이 없는거 같아서 직접 만들어 보았다. 패키지도 있던데 어렵지도 않은거 굳이 패키지로? 아이디어는 다음과 같다. delay + duration 만큼 애니메이션 시간을 늘린다 delay 비율을 계산하고 그 비율만큼은 위젯의 투명도를 0으로 하여 보이지 않게 한다 delay시간이 지나면 그때부터 애니메이션을 시작한다. 애니메이션 값에 delay비율만큼 뺀 다음 범위를 0에서 1로 노말라이즈 해 준다 @override Widget build(BuildContext context) { double delayRatio = delay.inMilliseconds == 0 ? 0 : delay.inMilliseconds.toDouble() / (delay.inMilliseconds.toDouble() + d.. 2024. 1. 5.
AnimatedSwitcher가 동작하지 않을 때 해결방법 https://stackoverflow.com/questions/57548253/animatedswitcher-not-working-as-intended-widget-changing-but-no-animation AnimatedSwitcher not working as intended? Widget changing but no animation Goal: Press a button and have it switch to another page with an animated transition. For that, I'm using AnimatedSwitcher. Below is my code: class WelcomeScreenSwitcher extends State 2024. 1. 3.
Flutter에서 헬퍼메소드와 클래스위젯 https://www.youtube.com/watch?v=IOyq-eTRhvo 1. 문제상황 우리가 자주 재사용되는 위젯을 따로 코드로 빼 놓을 때 두가지 방법이 있다. 헬퍼메소드 사용(위젯을 리턴하는 함수를 의미) 클래스 위젯을 사용 이 두가지 방법중 뭘 선택해야 할 까? 2. 정답은 클래스 위젯 구글에서 답을 정해줬다. 따로 위젯을 만들라는거다. 이유는 퍼포먼스적인 이슈 때문이라는데.. 내가 추정한 이유는 다음과 같다. 헬퍼 메소드는 setState같은걸 활용할 수 없다. 고로 헬퍼메소드를 사용하면 상위 위젯의 setState에 의지해야 하고, 헬퍼메소드 내에 위젯만 바뀌어야 하는거면, 불필요한 렌더링이 발생한다 const 생성자를 사용할 수 없다. 역시나 불필요한 렌더링을 발생시길 가능성이 있다. .. 2023. 12. 20.
반응형