분류 전체보기

    [REACT NATIVE] 안드로이드 APK(AAB) 파일 생성하고 Release 빌드하기

    1. keystore 생성 터미널을 켜고 프로젝트 폴더에서 아래를 실행해준다. 여기서 your_key_name 과 your_key_alias 에 원하는 이름을 작성해준다. your_key_alias 이름은 기억해두자! keytool -genkey -v -keystore your_key_name.keystore -alias your_key_alias -keyalg RSA -keysize 2048 -validity 10000 위 명령어를 실행하면 비밀번호를 포함해서 여러 질문들이 나온다. 입력해주자. 비밀번호를 제외하고는 그냥 엔터치면 unknown 으로 입력되고 넘어간다. 필수사항은 아니니 그냥 엔터치고 넘어가도 된다. Enter your keystore password: Re-enter new passw..

    [REACT NATIVE] react navigation 정리

    ※ react navigation 6.x 기준입니다. 1. navigate to Tab navigator react navigation 에서 Tab navigator 로 navigate 할 때 기본적으로 initialRoute 로 넘어간다. 종종 initialRoute 말고 다른 탭의 screen 으로 넘어가고 싶을 때가 있는데, 매번 방법을 까먹어서 이렇게 정리하게 되었다. navigation.navigate('Tab', { screen: "ScreenName" } ) 2. navigation stack reset 방법 screenName에는 이동할 스크린 이름을 넣으면 된다. routes 에 's' 가 붙음에 주의하자. navigation.reset({routes: [{name: "screenName..

    [REACT NATIVE] 다크모드 disable

    만드는 앱에서 항상 본래 디자인을 유지하기 위해서 다크모드를 막기로 결정했다. Android android > app > src > main > res > values > styles.xml 에서 AppTheme에 해당하는 style 부분을 다음과 같이 바꿔준다. iOS info.plist 에 다음과 같이 추가해준다 UIUserInterfaceStyle Light ** 위와 같이 info.plist 에만 추가 해주는 방법 말고 다른 방법도 있다고 한다. 위 방법으로도 충분하겠지만 혹시 문제가 있다면 아래 방법도 있으니 시도해보자. // AppDeletegate.m if (@available(iOS 13.0, *)) { rootView.overrideUserInterfaceStyle = UIUserInte..

    [swift] 기본문법(7)

    import UIKit /* 17. 옵셔널 체이닝 옵셔널에 속해 있는 nil 일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정 */ struct Developer { let name: String } struct Company { let name: String var developer: Developer? } var company = Company(name: "gunter", developer: nil) print(company.developer) //nil var developer = Developer(name: "han") var company2 = Company(name: "james", developer: developer) print(compa..

    [swift] 기본문법(6)

    import UIKit /* 15. protocol 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진 */ protocol SomeProtocol {} protocol SomeProtocol2 {} struct SomeStructure: SomeProtocol, SomeProtocol2 {} /* 클래스는 프로토콜을 받기 전에 상속하는 슈퍼클래스를 먼저 써야한다. class SomeClass: SomeSuperClass, FirstProtocol, AnotherProtocol ... { } */ protocol FirstProtocol { var name: Int { get set } var age: Int { get } } protocol AnotherProtocol { static..

    [swift] 기본문법(5)

    import UIKit // 12. 상속 class Vehicle { var currentSpeed = 0.0 // var 앞에 final 을 붙이면 override 불가= var description: String { return "traveling at \(currentSpeed) miles per hour" } func makeNoise(){ print("speaker on") } } class Bicycle: Vehicle { var hasBasket = false } // 여기서 Vehicle은 슈퍼클래스, Bicycle은 서브클래스 라고 함 var bicycle = Bicycle() bicycle.currentSpeed // 0 bicycle.currentSpeed = 15 bicycle.cu..

    [swift] 기본문법(4)

    import UIKit /* 10. property 클래스, 구조체 또는 열거형 등에 관련된 값 */ //a. 저장 property struct Dog { var name: String let gender: String } var dog = Dog(name: "gunter", gender: "Male") print(dog) // 값 변경 dog.name = "james" //dog.gender = "Female" => dog는 변수로 되어있지만 gender가 상수이므로 변경 불가 let dog2 = Dog(name: "gunter", gender: "Male") //dog2.name = "paul" => 구조체인 dog2가 상수이므로 변경 불가 /* struct 와 달리 class 는 참조 값이므로 상수..

    [swift] 기본문법(3)

    import UIKit /* 8. 구조체와 class 사용방법은 같지만 구조체의 instance는 값 타입, class의 instance는 참조 타입 구조체와 class 의 이름은 대문자로 시작하는 파스칼표기법을 따른다. */ // a. 구조체 struct User { var nickname: String var age: Int func information(){ print("\(nickname) \(age)") } } // 인스턴스 생성 var user = User(nickname: "홍길동", age: 23) user.nickname user.nickname = "임꺽정" user.nickname // 임꺽정 user.information() // b. class class Dog { var name..