flutter

    플러터 싱글턴 구현하기

    이 문서에서는 플러터에서 싱글턴을 구현하는 방법에 대해 알아봅니다. Class 이름 활용하기 싱글톤으로 만들고 싶은 클래스에 다음과 같이 코드를 작성합니다. class Database { static final Database _instance = Database._internal(); factory Database() => _instance; Database._internal(); } 위와 같이 작성하면 코드 어디에서든 ClassName()로 싱글톤 객체에 접근할 수 있게 됩니다. Database().getSomthing(); 공유 객체 생성하기 공유 객체를 정적으로 하나 선언하고 다른 객체를 만들지 못하도록 생성자를 private 선언합니다. class Database { static final sh..

    플러터 원격 저장소 패키지 의존성 추가하기

    Flutter 공식 패키지 저장소 pub.dev에 있는 패키지가 아닌 원격 저장소 (Git, Bitbucket ...)에 있는 패키지의 특정 버전을 사용하는 방법 Github 프로젝트 타겟팅 dependencies: package_you_want: git: url: ref: 9f90296751984b359937c38563da5b19db5550f5 Bitbucket 프로젝트 타겟팅 앱 프로젝트에 빗버킷에 올린 ollacare_app_theme 패키지 의존성을 추가하려면 다음과 같이 작성합니다. dependencies: ollacare_app_theme: git: url: git@bitbucket.org:blueant_git/ollacare_app_theme.git ref: master 원격 저장소의 특정 ..

    플러터 프로젝트에 코드매직으로 CICD 도입하기

    플러터 프로젝트에 코드매직으로 CICD 도입하기

    진행하고 있는 앱 서비스의 규모가 커지고 이해관계자가 다양해지고 많아짐에 따라 그동안 수동으로 진행했던 배포를 자동화해야 하는 필요성을 느꼈습니다. 회사 내부에서 파이어베이스 배포 서비스를 이용하여 내부 테스터들에게 앱을 배포하고 있는데 잦은 빌드 잦은 배포로 인해 업무의 효율성이 낮아졌기 때문이지요. 사내에서는 프로젝트 원격 저장소로 빗버킷을 이용하고 있기에 CI/CD 구축을 위해 빗버킷에서 제공하는 파이프라인을 사용할 수 있었지만 파이프라인은 리눅스 환경에서 돌아가기 때문에 iOS 앱을 빌드할 수 없었습니다. 따라서 남은 선택지는 1. macos 빌드 환경을 자체 구축한다 2. 외부 CICD 서비스를 이용한다 였고, 빠르게 구축하기 위해 돈을 주고 외부 CICD 서비스를 이용하기로 결정하였습니다. 저..

    flutter 특정 원격 저장소 패키지 의존성 추가하기

    목표 Flutter 공식 패키지 저장소 pub.dev에 있는 패키지가 아닌 원격 저장소 (Git, Bitbucket ...)에 있는 패키지의 특정 버전을 사용 Github 프로젝트 타겟팅 dependencies: package_you_want: git: url: ref: 9f90296751984b359937c38563da5b19db5550f5Bitbucket 프로젝트 타겟팅 앱 프로젝트에 빗버킷에 올린 ollacare_app_theme 패키지 의존성을 추가하려면 다음과 같이 작성합니다. dependencies: ollacare_app_theme: git: url: git@bitbucket.org:blueant_git/ollacare_app_theme.git ref: master원격 저장소의 특정 경로 패..

    플러터 JSON 사용 방법 | the way of using json in Flutter

    안녕하세요! 개발자 베베입니다. 이번 포스팅에서는 플러터에서 json 데이터를 다루는 가장 확실한 방법에 대해서 알아보도록 하겠습니다. 시작하기 전에 json이 뭔지 간단하게 알아보도록 할게요! JSON이 뭐지? json은 Javascript Object Notation의 축약어이며, 데이터를 저장 및 전송할 때 데이터 형식으로 자주 사용됩니다. 이름에서 알 수 있듯이 json은 자바스크립트의 객체를 표현하는 형식을 기반으로 만들어졌습니다. 다만 자바스크립트에서는 객체를 표현했다면 json에서는 데이터를 표현한다는 거죠. json은 이렇게 생겼습니다. { "users": [ { "name": "lee", "age": 32 }, { "name": "bebe", "age": 26 } ] } Json 디코딩 ..

    플러터 앱에 스플래시 화면을 구현해보자

    플러터 앱에 스플래시 화면을 구현해보자

    목표 페이지를 통한 스플래쉬 화면이 아닌 네이티브 스플래쉬 화면을 설정한다. 과정 네이티브 스플래쉬 화면을 구성하려면 각 플랫폼의 디렉터리에서 스플래쉬 화면에 관한 설정을 해주어야 하는데, 꽤나 번거로운 일이기 때문에 이 글에서는 패키지를 통해 네이티브 스플래쉬 화면을 두 플랫폼 한 번에 설정하는 방법에 대해 알아본다. 아래 패키지를 사용할 것이다. flutter_native_splash | Dart Package Automatically generates native code for adding splash screens in Android and iOS. Customize with specific platform, background color and splash image. pub.dev 플러터 프..

    플러터 출시한 앱 버전 관리하기

    플러터 출시한 앱 버전 관리하기

    글의 목표 이번 글에서는 플러터 출시한 앱의 버전을 관리하는 방법에 대해 알아본다. IOS와 Android는 버전 스트링을 다루는 방식이 서로 상이한 부분이 있다. 그러나 버전 관리는 같은 플러터 프로젝트에서 해주기 때문에 두 플랫폼에 동일하게 사용될 수 있는 버전을 관리 방법을 찾아야 한다. 플레이 콘솔 앱 출시 버전 정책 플러터에서는 앱 버전을 설정하기 위해서 pubspec.yaml 파일을 사용한다. 파일의 상단에 version이라고 적혀있는 부분이 있는데 그곳에 앱이 어떤 버전으로 빌드될 것인지 적어주기만 하면 된다. 플러터에서 버전 스트링은 총 4가지로 나뉘며 본인은 각각 아래와 같이 부르고 있다. 1(major) . 6(minor) . 0(maintain) + 27(version code) 앞의..

    flutter :: 앱 버전 및 업데이트 관리 | app version control

    flutter :: 앱 버전 및 업데이트 관리 | app version control

    목표 내 앱이 현재 최신 버전인지 확인하고, 최신 버전이 아니라면 업데이트를 하도록 유도하는 다이얼로그를 화면에 띄운다. 최신 버전이 아니여도 호환이 되는 상태기 때문에 업데이트를 강제하지는 않는다. 만약 앱이 최신버전이 아니고, 최신 버전과 호환되지 않는 상태라면 ( 최소 앱 버전보다 낮다면) 업데이트를 강제하고 앱 사용을 중단시킨다. 해결 방법 사용중인 유저의 앱의 버전은 반드시 최소로 요구되는 버전보다 크거나 같아야 하고 최신 버전 이하여야 한다. minimumAppVersion

    플러터 SVG 파일 캐싱하는 방법 | how to cache svg file in flutter

    플러터 SVG 파일 캐싱하는 방법 | how to cache svg file in flutter

    이 문서에서는 플러터 프로젝트에서 svg 파일을 캐싱하는 방법을 알아보도록 하겠습니다. 서론 플러터에서는 svg파일을 사용하기 위해 flutter_svg 패키지를 사용합니다. 만약 svg 파일의 크기가 크다면 불러오는데 시간이 소모되기 때문에 해당 svg파일을 화면에 그릴 때에는 잠깐동안 빈화면이 출력됩니다. 이러한 문제를 해결하기 위해 미리 svg 파일을 메모리로 올려놓는 svg 파일 캐싱 작업이 필요합니다. 캐싱 작업을 위해 필요한 함수들도 모두 flutter_svg 패키지에서 제공됩니다. SVG 파일 캐싱 svg파일 캐싱이 수행되는 순간은 앱 시작 전이나 스플래쉬 화면이 가장 적당할 것 같습니다. 저는 main함수 내부에서 svg파일 캐싱을 수행하였으며 코드는 다음과 같습니다. final List ..

    [Flutter Apple Sign In] 플러터 애플 로그인 | 3. 코드 작성

    [Flutter Apple Sign In] 플러터 애플 로그인 | 3. 코드 작성

    안녕하세요 개발자 베베입니다. 저번 포스팅에 이어서 플러터 ios 애플 로그인 구현 마지막 단계에 대해 알아보도록 하겠습니다. 이전 포스팅 [Flutter Apple Sign In] 플러터 애플 로그인 | 2. 파이어베이스 설정하기 안녕하세요 개발자 베베입니다. 저번 포스팅에 이어서, 이번에는 애플 로그인을 사용하기 위해 파이어베이스 프로젝트에서 설정해야 할 내용들에 대해 알아보도록 하겠습니다. 이전 포스트 [Flu bebesoft.tistory.com 1. Xcode에서 Apple Sign In 활성화 빌드될 앱 파일에 애플 로그인의 기능이 사용된다는 정보를 넣어주기 위해 Xcode에서 애플 로그인 기능을 활성화해줘야 합니다. /ios 디렉토리를 오른쪽 클릭으로 눌러서 Xcode를 열고 아래 과정을 거..