분류 전체보기
플러터 앱 oAuth 간편 로그인을 직접 구현해보기
이 글에서는 플러터 앱과 백엔드 서버가 oAuth 로그인을 통하여 회원가입을 하는 과정에 대해서 알아봅니다. 예시로 애플 로그인을 언급하고 있지만, 내용 자체는 카카오, 페이스북, 구글과 일치합니다. 배경 회사에서 개발중인 플러터 앱에 간편 로그인 기능을 사용하기로 결정하였습니다. 기존 개발할 때 파이어베이스 서비스를 이용하여 간편 로그인을 구현하였는데, 이번에는 자체 서버가 있기 때문에 oAuth 로그인 규약에 맞춰 개발을 진행해야 했습니다. 개발을 진행하면서 알게된 점, 특징들을 공유하고자 이런 글을 남깁니다. 이 글에서는 애플 로그인을 통하여 서버에 계정을 생성하기까지의 과정을 알아보도록 하겠습니다. oAuth 로그인이란 oAuth 로그인이란 쉽게 생각해서 새로운 서비스를 이용하기 위해 기존에 이용..
Swift | lazy property에 대해 알아보자
Lazy Property Lazy Property는 Property의 종류 중 하나입니다. 사용하는 데에 소모되는 비용이 큰 프로퍼티를 Lazy Property로 사용하면 비용 절감의 효과를 누릴 수 있습니다. 예를 들어서 다음과 같은 클로저 프로퍼티가 있다고 가정해보겠습니다. class MyClass{ var myProperty: Int = { // 비싼 연산 수행 } } MyClass의 인스턴스가 생성될 때마다 myProperty 프로퍼티가 할당되야 하고 클로저 내부의 비싼 연산이 수행될 것입니다. 물론 비싼 비용으로 만든 이 프로퍼티를 사용해야만 한다면 어쩔 수 없이 비용을 감수해야겠지만, 실제로는 이 프로퍼티가 사용되지 않을 수도 있습니다. 만약 사용되지 않을 경우 기껏 비용을 들여 프로퍼티를 만..
ios 빌드 시에 [Ambiguous use of 'SQLITE_DETERMINISTIC'] 오류 발생 해결법
Swift의 SQLCipher 패키지를 사용하다가 다음과 같은 에러가 나타났습니다. Ambiguous use of 'SQLITE_DETERMINISTIC' 자세한 이유는 모르겠지만 xcode 12버전 이상에서 SQLCipher를 사용하면 종종 뜨는 에러인 것 같습니다. 해결 방법 xcode에서 @import를 쳐서 SQLite-Bridging.h 파일을 찾아줍니다. 파일을 들어가서 아래 코드를 찾아주어 수정해줍니다. (패키지 파일을 수정하는 것이기 때문에 UnLock 하겠냐고 다이얼로그 창이 뜰 것입니다) @import SQLite3; 부분을 @import SQLCipher.sqlite3; 으로 고쳐줍니다. 그 후에 빌드를 하시면 오류가 나타나지 않습니다.
AWS EC2에 대해 알아보자 | 아마존 웹 서비스 EC2
인트로 개발자라면 이젠 반드시 클라우드에 대하여 기본적인 지식은 이해하고 있어야 하는 시대가 되었습니다. 클라우드 서비스를 대표하는 AWS (Amazon Web Service)에 대하여 알아보며 클라우드에 대한 기본 지식을 닦아보도록 합시다. AWS ? AWS란 Amazon Web Service의 약자로 아마존 기업에서 운영하고 있는 클라우드 컴퓨팅 대여 서비스입니다. 쉽게 얘기해서 엄청난 크기의 서버를 짓고 그 서버들을 자체 기술을 이용하여 이어놓은 후, 서버를 가상화해서 가상화된 컴퓨터를 대여해주는 서비스입니다. 이러한 기술을 클라우드라고 부르죠. 결국 AWS를 이용한다는 것은 컴퓨터 서버를 대여한다는 것입니다. 예를 들어 웹서버를 24시간 돌리기 위한 컴퓨터가 필요해서 AWS를 이용하는 사람도 있을..
플러터 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
목표 내 앱이 현재 최신 버전인지 확인하고, 최신 버전이 아니라면 업데이트를 하도록 유도하는 다이얼로그를 화면에 띄운다. 최신 버전이 아니여도 호환이 되는 상태기 때문에 업데이트를 강제하지는 않는다. 만약 앱이 최신버전이 아니고, 최신 버전과 호환되지 않는 상태라면 ( 최소 앱 버전보다 낮다면) 업데이트를 강제하고 앱 사용을 중단시킨다. 해결 방법 사용중인 유저의 앱의 버전은 반드시 최소로 요구되는 버전보다 크거나 같아야 하고 최신 버전 이하여야 한다. minimumAppVersion
플러터 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. 코드 작성
안녕하세요 개발자 베베입니다. 저번 포스팅에 이어서 플러터 ios 애플 로그인 구현 마지막 단계에 대해 알아보도록 하겠습니다. 이전 포스팅 [Flutter Apple Sign In] 플러터 애플 로그인 | 2. 파이어베이스 설정하기 안녕하세요 개발자 베베입니다. 저번 포스팅에 이어서, 이번에는 애플 로그인을 사용하기 위해 파이어베이스 프로젝트에서 설정해야 할 내용들에 대해 알아보도록 하겠습니다. 이전 포스트 [Flu bebesoft.tistory.com 1. Xcode에서 Apple Sign In 활성화 빌드될 앱 파일에 애플 로그인의 기능이 사용된다는 정보를 넣어주기 위해 Xcode에서 애플 로그인 기능을 활성화해줘야 합니다. /ios 디렉토리를 오른쪽 클릭으로 눌러서 Xcode를 열고 아래 과정을 거..