일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 공기먹는다이버스
- 스쿠버다이빙
- 아시아나
- 스페인여행
- Swift #Concurrency #쓰레드
- 대한항공
- Cocoapods #PrivateRepo #SpecRepo
- 지팍스페인
- 푸켓여행
- 강릉
- 러브스플리트
- cocoapod
- 스페인광장
- 세비야
- 연금저축펀드
- 그라나다
- Device 등록
- swiftUI
- Concurrency #Swift #Combine
- 도심공항
- 괌 자유여행
- Gradle
- 시밀란
- 크로아티아
- 스플리트
- 라이브러리
- 러브자그레브
- SwiftUI #Skeleton #데이터갱신
- xcode
- 리브어보드
- Today
- Total
목록Development (68)
JEP's Diary
네이티브와 WebView의 페이지와 통신을 하려면 주로 Bridge를 통해서 했었다. 이를 위해 보통 addJavaScriptInterface()를 사용하는데, 이것을 사용할때는 주의가 필요하며 애플리케이션 APK에 포함된 자바스크립트에만 사용하기를 권장한다. 이를 대신해서 WebMessagePort를 사용할 수 있다. 마시멜로우 버전부터 추가되었다. API 23 참고1. https://stackoverflow.com/questions/41753104/how-do-you-use-webmessageport-as-an-alternative-to-addjavascriptinterface 참고2. https://github.com/commonsguy/cw-omnibus/tree/master/WebKit/Sens..
블록체인이란? 체인이 어떻게 되어있는지? 왜 체인인지? 암호화폐는 왜 암호가 붙을까? 채굴이란?
Compose는 네이티브 Android UI를 위한 최신 선언형 UI 도구 키트이다. 더 짧은 코드, 강력한 도구, 직관적인 Kotlin API로 네이티브 UI개발을 간소화하고 가속화한다. 선언형 프로그래밍 패러다임 이전의 Android 뷰 계측 구조는 UI 위젯의 트리로 표시했다. findViewById() 로 트리를 탐색하고, button.setText("")과 같은 함수 호출로 UI를 업데이트 했다. 선언적 UI ahepfdms 화면전체를 개념적으로 재생성한 후 필요한 변경사항만 적용하는 방식으로 작동한다. 이것은 스테이트풀(Sateful) 뷰 계측 구조를 수동으로 업데이트할때의 복잡성을 방지할 수 있다. 화면 전체를 재생성할 때 비용이 많지 들지만, 이 비용을 줄이기 위해 Compose는 특정 시..
Compose 키워드가 정말 많이 보인다. 최근에 android dev summit 2022에서도 Compose 섹션이 많았는데, 영어로 설명하고 있는 유튜브를 시청할 용기가 나지 않고 있었다. Compose에 대한 경험은 이전에 정말 간단한 페이지 정도의 구성과 페이지 이동 정도의 맛보기 정도 였고, 이때는 선언형 프로그래밍이 익숙지 않아서 왜 이렇게 되는지 모르고 구글링 해서 구성했었다. 최근에 개발하고 있는 SwiftUI를 경험하면서 아 Compose가 이런느낌이었어! 라고 느끼고 있던 찰나였는데 이 캠프를 통해서 맛보기 보다는 조금더 경험해본다의 목표를 가지고 시작해보겠다. Compose camp 2022 참여신청 링크 Compose Camp로 초대합니다! A One-Stop-Shop for Al..
지난 8월에 겪었던 이슈와 그 해결 방법을 적어본다. web3swift를 이용하여 ios 지갑앱을 개발중이었다. 클레이 전송시 사용자에게 받는지갑주소/전송수량/예상 가스비의 정보를 표시해주는 기능을 메인넷/바오밥에서 모두 개발을 완료 했었다. 그러던 곧 배포가 얼마 남지 않았던 8월중순에 갑자기 예상 가스비 호출시에 노드단에서 에러가 났다. 충분한 잔액이 있는데도 불구하고! 예상 가스비 호출시 에러 발생 nodeError: (1 element) desc: “err: insufficient balance of the fee payer to pay for gas (supplied gas 500000010499)” 특이했던 현상 메인넷에서는 정상 작동, 바오밥에서만 해당 에러 발생! 원인을 검색 해보던 중 바..
클레이튼 기반으로 개발된 Wallet 앱에 이더리움 체인이나 다른 체인을 추가 하기 위한 모듈화 작업을 진행 중이다. 러프하게 생각했을때는 아래와 같은 흐름으로 설계했다. Module level 1. 공통 동작 정의 - 기축통화를 전송한다. - 토큰을 전송한다. - NFT를 전송한다. - 메시지 서명을 한다. - 잔액을 조회한다. 등등 각 체인에서의 동작들을 interface에 정의한다. public interface Chain { void sendCoin() void sendToken() void sendNFT() ... } 2. 체인별로 interface를 implements 해서 공통 동작에 대한 내용을 구현한다. - '기축통화를 전송한다'의 동작에 대해서 이더리움 체인에서는 이더를 전송하는 로직을..
Combine 프레임워크 시간의 흐름에 따른 값 처리를 위한 SwiftAPI를 제공한다. 시간의 흐름에 따라 값을 제공하는 publishers와 해당 값들을 받을 수 있는 subscribers가 있고, 여기서 값을 여러종류의 비동기 이벤트들이 될 수 있다. Combine 프레임워크는 시간 경과에 따른 값 처리를 위한 선언적 Swift API를 제공합니다. 이러한 값은 다양한 종류의 비동기 이벤트를 나타낼 수 있습니다. Combine은 시간이 지남에 따라 변경될 수 있는 값을 노출하는 게시자와 게시자로부터 해당 값을 수신하는 구독자를 선언합니다. Publisher 프로토콜은 시간이 지남에 따라 일련의 값을 전달할 수 있는 형식을 선언합니다. publisher에게는 업스트림 게시자로부터 받은 값에 대해 조치..
Custom Alert을 FullScreenCover 이용해서 만들기 아래 URL 참고 https://stackoverflow.com/questions/68178219/swiftui-creating-custom-alert
FullScreenCover를 이용해서 Custom Alert를 만들기 위해 배경을 투명 처리되도록 해야했다. 먼저 View를 extension 한다 // 투명 fullScreenCover extension View { func transparentFullScreenCover(isPresented: Binding, content: @escaping () -> Content) -> some View { fullScreenCover(isPresented: isPresented) { ZStack { content() } .background(TransparentBackground()) } } } struct TransparentBackground: UIViewRepresentable { func makeUIV..
Sealed Class 사용 X 여러개의 자식클래스들이 A라는 부모클래스를 상속받았다고 했을때, 컴파일러는 A 클래스를 상속 받은 자식 클래스들이 있는지 알지 못한다. 따라서 when에서 상태에 따라 처리를 해주려면 else 처리도 같이 해주어야 한다. // 부모클래스 abstract class ListState // 자식클래스 class Loading: ListState() class Success: ListState() class Failure: ListState() // ListState에 따라 동작하는 함수 fun doListState(listState: ListState): String { return when(listState) { is Loading -> { "Loading" } is Suc..