728x90
반응형
- [ pinslog ]오늘 일기2023-12-03 22:32:28요즘 플러터 공부를 하고 있다. 다른 크로스플랫폼과는 다르게 플러터는 OS를 통하지 않고 플러터 엔진으로 직접 화면을 그린다고 한다. 그래서 얼마든지 원하는 UI를 구현할 수 있다고 한다. 안드로이드 네이티브도 재밌지만 플러터로 Android, iOS 더 나아가서는 web, 데스크탑 앱까지 빌드할 수 있다니 기대된다. 분명 일년전 쯤에도 같은 내용을 공부했는데.. 그때 이해하는 것과 지금 이해하는 것이 다르게 느껴진다. 좀 더 맥락이 이해가 잘 된다고 해야하나.. 그만큼 나의 깊이가 깊어졌다고 생각해도 될까 이거 하하 열심히 해보자아
- [ pinslog/Log.daily() ][Flutter] iOS 디바이스 개발자 옵션 및 연결 관련 문제 해결하기2023-12-02 15:27:17iOS 디바이스에서 앱 실행하기 개발자 모드 켜기 [설정] - [개인정보 보호 및 보안] - 보안 섹션 [개발자 모드] 켬 신뢰하는 디바이스 설정 처음 앱을 디바이스에서 실행하려고 하면 신뢰할 수 없는 어쩌고...하면서 대화창이 뜬다. 이때 신뢰하는 디바이스 설정을 해주어야 앱을 정상적으로 빌드할 수 있다. [설정] - [일반] - [VPN 및 기기관리] - 개발자 앱 선택 - 신뢰 TroubleShooting - 사이닝 관련 flutter 프로젝트에서 처음으로 실제 iOS 디바이스에서 실행을 하려면 Xcode 상에서 최초 연결이 필요하다. 그러기 위해서 개발자 모드를 켜줘야 하고… 그리고 사이닝 관련 설정에서 팀을 지정해줘야 한다. Runner 탭 클릭 - Signing & Capabilities 에서..
- [ pinslog/Log.daily() ][Android] Activity 스택 관리 (feat. Intent와 Flag)2023-12-01 23:36:52Case1. 특정 액티비티를 상단에 띄우기 A - B - C 순으로 스택이 쌓였다고 할 때, C가 사용자의 화면에 떠있을 것이다. 이때 C에서 A로 이동하면서 B, C를 스택에서 제거하고 싶다면 Intent의 Flag 중 FLAG_ACTIVITY_CLEAR_TOP 을 사용하면 된다. Intent intent = new Intent(this, AActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish(); 이동하려는 액티비티가 스택에 이미 존재하면 그 위에 쌓여있는 모든 스택을 제거하고 해당 액티비티가 다시 상단에 오르게 되는 것이다. Case2. 스택을 모두 제거하고 싶을 때 스택에 이동하려..
- [ pinslog/Log.daily() ][Java, Kotlin] SimpleDataFormat 밀리세컨까지 나타내기2023-11-30 23:16:59밀리세컨드까지 나타내야할 때가 있다. 찾아다니다 까먹지 않기 위해 기록한다. val sdf = SimpleDateFormat("yyyy.MM.dd HH:mm:ss.SSS", Locale("ko", "KR")) val dateString = sdf.format(System.currentTimeMillis()) println(dateString) // 2023.11.30 23:14:26.975 패턴은 yyyy.MM.dd HH:mm:ss.SSS 인데 여기서 주의할 점은 뒤의 SSS는 반드시 대문자로 써주어야 한다는 점이다. yyyy.MM.dd HH:mm:ss.sss 로 입력할 경우 결과는 2023.11.30 23:15:47.047 와 같다.
- [ Flutter ][Flutter] 실습 - 블로그앱2023-11-29 10:54:33회원가입 페이지 만들기 아래 화면을 만들어 볼 것이다. 전체 틀 잡기 먼저 화면의 큰 틀은 Scaffold, 그리고 ListView로 잡아준다. 이유는 회원가입 시 내용을 입력하기 위해 해당 영역을 클릭하면 키보드가 올라와야 하는데, 적절한 공간을 만들어주지 않으면 사용성이 떨어지기 때문이다. (안드로이드에서는 해당 속성을 설정할 수 있는데 여기도 있지 않을까..? 리스트 뷰만이 최선일까? 생각해보자.) Text 입력란 InputDecoration( hintText: "아이디를 입력해주세요", enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(10) ), focusedBorder: OutlineInputBorder( border..
- [ Flutter ][Flutter] 간단한 UI 알아보기2023-11-28 10:03:09완성화면 Lib DirectoryThis is the most important folder in the project, used to write most of the dartcode. By default, the lib folder contains the main.dart file, which is the application’s entry point. This configuration, however, can be changed.pubspec.yamlThis is the file we use to add metadata and configuration specific to our application. With this file’s help, we can configure dependencies su..
- [ Flutter ][Flutter] 프로젝트 구조 알아보기2023-11-27 09:12:45Flutter UI 모든 것은 widget 공식 문서를 참조하면 편하게 학습할 수 있다. Widget 구성 및 상태가 주어질 때 화면에 보여지는 view가 어떤 모습이어야하는지를 기술 위젯은 용도에 따라 상태 저장 (Stateful) 또는 상태 비저장(Stateless)으로 구분 StatefulWidget 사용자가 위젯과 상호작용할 때 위젯의 상태가 변경되면 stateful 위젯 위젯의 수명동안 변경될 수 있는 상태를 유지 StatefulWidget 클래스가 State 클래스의 인스턴스를 생성 StatefulWidget 클래스 그 자체는 변경 불가능 State 클래스가 위젯의 수명동안 상태를 유지 동적으로 변화함 수신된 데이터에 따라 변경됨 위젯의 상태는 상태 객체(State Object)에 저장 위젯 ..
- [ Flutter ]Dart 문법 알아보기 - 32023-11-26 13:56:04mixin 여러 클래스 계층에서 클래스의 코드를 재사용하는 방법 , 로 여러 클래스의 코드를 사용할 수 있다. class Engine { int power = 5000; } // extends 해서 Engine 클래스 쓰고 싶은데..BMW가 Engine은 아니잖아요ㅠ (다형성을 만족하지 않음) class BMW with Engine { // with 키워드를 사용한다. } void main() { BMW b = BMW(); print(b.power); // 5000 } 다른 언어에서는 composition이라는 개념을 사용한다. composition 클래스 간에 포함 관계(composition)를 맺어주는 것 한 클래스의 멤버 변수로 다른 클래스 타입의 참조 변수를 선언하는 것을 의미 + 다트 문법을 복..
728x90
반응형