지난 주부터 노마드코더에서 진행하는 Flutter챌린지를 시작했다.
Flutter는 Dart라는 프로그래밍언어를 사용 중이기 때문에 Dart언어에 대해서 먼저 시작했다.
Dart언어를 공부하면서 가장 신기했던 점은 컴파일러가 다양하다는 점이였고 대부분의 문법은 최신 프로그래밍언어들과 큰 차이가 없는 것 같았다.
Dart언어특징, 변수, 자료형, 함수, 클래스에 대해서 이번주 모두 강의가 끝났다.
강의의 특징은 Dart언어의 모든 부분을 학습하는 것이 아니라 Flutter를 사용하는데 필요한 수준정도로만 진행하는 것 같았다.
프로젝트에서 프로그래밍언어 또는 라이브러리등이 업데이트가 되었을 때나 새로운 코드를 작성했을 때 영향이 갈 수 있는 기존 코드(Legacy)를 자세히 보는 습관을 가져야겠다.
모바일앱에서 충돌이 발생했을 때 어떤 이유로 충돌이 발생했는지 알려주는 서비스로 대표적으로 Firebase Crashlytics를 사용한다.
Firebase Crashlytics는 무료이고 모바일이라는 범주안에서는 괜찮은 선택인 것 같다. 하지만 서버가 충돌했을 때 로그를 기록하기 위해서 Sentry라는 서비스도 좋은 도구라고 한다.
Sentry를 확인해보고 느낀 점은 조금 더 충돌이유와 충돌시점에 스크린샷, 뷰의 상관관계등 옵션들이 매우 다양했다.
Firebase AppDistribution란? 앱파일을 배포한 후 해당 서비스를 이용하여 앱을 다운로드하고 테스트할 수 있는 서비스다. 기존의 Apple에서 사용하는 TestFlight와 유사하지만 안드로이드는 TestFlight를 사용할 수 없지만 AppDistribution은 안드로이드, iOS 모두 사용가능하다.
iOS에서 사용하기 위해서는 AppTester라는 앱을 다운로드 받아야한다. 하지만 앱을 직접 다운로드할 수는 없고 웹사이트 바로가기형태로 앱을 다운로드 받을 수 있다. iOS에서 사용했을 때 느낀점은 속도는 TestFlight보다 빠른 것 같지만 프로파일설정도 해야하고 기기등록도해야하는 등 처음설정하는 부분이 복잡한 것 같았다. 그래서 안드로이드를 배포할 예정이 없는 프로젝트의 경우는 접근성이 편리한 TestFlight를 자주 사용할 것 같다.
지지난주에 만든 Slack Slash를 이용하여 배포하는 작업을 조금 변형하여 Jenkins를 이용해�� Bitbucket pipeline을 트리거하려고 Jenkins에 대해서 공부했다. 하지만 Jenkins에서 해당 파이프라인을 실행하기 위해서는 동작하는 머신이 Mac이여야 한다.