Flutter를 활용한 Alarm 알람앱을 만드는 과정을 담은 블로그입니다.
-
push 알림 서비스를 위해 onesignal 설정 중 발생한 오류 Cycle inside Runner; building could produce unreliable results.
모바일 앱 개발시 Push Notification 을 설정하려면 push 서버를 만들어야하는데요! 서버를 만들려면 설정할게 한두가지가 아니죠!그래서 여러가지 푸시 서비스가 있는데요 onesignal은 사용량이 많지 않으면 무료로 사용할 수 있어서 설정해보려고 합니다.Android, ios 각각 따로 설정해주면 되는데요 Android는 설정이 간편하고 ios는 조금 해줘야할 게 있어요.ios 설정 중 오류가 발생합니다. Cycle inside Runner; building could produce unreliable results.Cycle details:→ Target 'Runner': ExtractAppIntentsMetadata○ Target 'Runner' has copy command from '..
2024.06.12
-
flutter splash image 설정하기 앱 처음 나오는 이미지 만들기
Flutter 앱 스플래시 이미지 설정 완벽 가이드 준비물 Flutter 개발 환경 스플래시 이미지 (PNG 또는 JPEG 형식) 단계별 설정 1. flutter_native_splash 패키지 설치 flutter pub add flutter_native_splash 2. pubspec.yaml 설정 dependencies: flutter: sdk: flutter #splash creator flutter_native_splash: ^2.3.0 3. flutter_native_splash.yaml 설정 flutter_native_splash: image: assets/splash.png # 스플래시 이미지 경로 (assets 폴더 기준) color: "#42a5f5" # 배경색 (스플래시 이미지 로딩 실..
2024.04.09
-
flutter 앱 개발시 사용자가 처음 설치했을 때 소개 페이지 만들어서 사용자 전환율 높이기! 튜토리얼 설명 페이지 Introduction screen
앱 사용자 전환율을 높이는 비결: Introduction Screen 활용 가이드 앱의 첫인상은 사용자들이 앱을 계속 사용할지 결정하는 중요한 요소입니다. 사용자에게 앱의 주요 기능과 장점을 명확하게 보여주는 것은 앱 사용자 전환율을 높이는 데 매우 중요합니다. Introduction Screen은 앱 처음 실행 시 사용자에게 앱의 주요 기능과 장점을 소개하는 화면입니다. 이 화면을 효과적으로 활용하면 사용자 경험을 향상시키고 앱 사용자 전환율을 높일 수 있습니다. 1. Introduction Screen 패키지 introduction_screen 패키지는 Flutter에서 쉽게 소개 화면을 만들 수 있도록 도와주는 유용한 패키지입니다. 이 패키지를 사용하면 다양한 디자인의 소개 화면을 손쉽게 만들 수 ..
2024.03.01
-
flutter에서 go_router로 로그인시 라우팅 설정하기. 로그아웃일 때 못들어가게 하기.
안녕하세요, 오늘은 Flutter에서 Go_router를 이용하여 로그인 시 라우팅 설정하고 로그아웃 시 접근을 제한하는 방법에 대해 알아볼게요. Go_router는 Flutter에서 라우팅을 쉽게 관리할 수 있도록 도와주는 패키지에요. Flutter GoRouter에서 로그인 여부에 따라 라우팅 설정하기 로그아웃 시 접근 제한 로그아웃 상태일 때는 로그인이 필요한 페이지에 접근할 수 없도록 설정해야해요. 이를 위해 Go_router의 redirect 옵션을 사용하여 로그인 상태를 체크하고, 로그아웃 상태일 때는 로그인 페이지로 리다이렉트하도록 설정해요. 핵심은 router 안에서 redirect로 로그인 상태가 아니면 로그인 페이지로 보내주는 것이에요!! 1. pubspec.yaml: 패키지 다운로드 ..
2024.03.01
-
FutureBuilder를 사용하여 배경 이미지를 설정하는 방법 [flutter]
아래 코드는 배경 이미지를 설정하는 코드에요. 이 코드에서는 FutureBuilder를 사용해서 비동기로 이미지 파일을 가져오고, 그 파일을 BoxDecoration으로 설정하여 배경 이미지로 사용하고 있어요. 에러 발생 코드 Container( decoration: BoxDecoration( image: DecorationImage( fit: BoxFit.cover, image: FileImage(widget.lightAnimation.imageFile), ), ), ) 문제는 FileImage와 BoxDecoration이 Widget이 아니라는 것이에요. 그런데 제가 이해한 바로는 Container의 자식 위젯이 많은 변수와 함수로 구성되어 있어서 Container를 사용할 수 없다고 하셨네요. 대신..
2023.11.09
-
에러"java.lang.NullPointerException: source" Error in Gradle
안녕하세요! 오늘은 Gradle을 사용하여 Java 프로젝트를 빌드하고 컴파일하는 중에 발생하는 "java.lang.NullPointerException: source" 오류에 대해 알려드릴게요. 이 오류는 명령 줄에서 다음 명령을 실행할 때 발생합니다. java -jar build\libs\*****.jar gradlew build 명령으로는 프로젝트가 정상적으로 빌드되는데, 위 명령을 실행할 때 오류가 발생합니다. 오류 메시지는 다음과 같습니다. Exception in thread "main" java.lang.NullPointerException: source at java.base/java.util.Objects.requireNonNull(Objects.java:233) at java.base/j..
2023.11.09
-
Flutter app에서 SHA-1 생성하기 [Google Sign-In]
아래 질문에 대한 답을 찾아보세요! 😄 "Flutter 앱을 위해 SHA-1을 생성하려고 하는데, 어떻게 해야 할까요?" SHA-1은 Google Sign-In을 지원하기 위해 Android Studio에서 사용하는 인증 키입니다. Flutter 앱에서 SHA-1을 생성하는 방법에 대해 알려드릴게요! 아래의 단계를 따라 진행해보세요. 터미널 터미널에서 프로젝트 폴더로 이동하세요. Mac keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android Windows keytool -list -v -keystore ".android\\debug.keystore" -alias..
2023.11.02
-
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance [npm] error
아래 오류는 주로 Xcode와 관련된 문제입니다. 오류가 발생한 이유와 해결 방법에 대해 알아보도록 하겠습니다. xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance 해당 오류는 Xcode와 관련된 문제로, Xcode가 설치되어 있지 않거나 활성 개발자 디렉토리가 잘못 설정되어 있는 경우에 발생합니다. 이 문제를 해결하기 위해 몇 가지 방법을 시도해 볼 수 있습니다. 해결 방법: Xcode 설치 확인: xcodebuild -version Xcode가 설치되어 있지 않은 경우, Ap..
2023.11.02
-
Flutter에서 go_router를 사용하여 기본 페이지 전환 설정하기
원인: go_router는 페이지 전환을 설정하는 pageBuilder 속성을 제공합니다. 그러나 이 속성을 사용하여 각 페이지마다 전환을 설정하는 것은 매우 번거롭고 중복적인 작업입니다. 따라서 모든 페이지에 대해 기본 페이지 전환을 설정하는 방법이 필요합니다. 해결: go_router의 GoRouter 위젯에 대한 transitionBuilder 속성을 사용하여 모든 페이지에 대한 기본 페이지 전환을 설정할 수 있습니다. 이 속성은 페이지 전환을 생성하는 함수를 제공합니다. 따라서 모든 페이지에 대해 동일한 페이지 전환을 설정하려면 이 속성을 사용하면 됩니다. GoRouter( // ... transitionBuilder: (context, child) { return CustomTransitionP..
2023.10.05
-
전자정부프레임워크 intellij에서 간단하게 열기
eclipse는 하다보면 자주 뻗어서 intellij에서 사용하고 싶어서 삽질하다가 성공한 방법을 공유해드릴까 합니다. import하기 좋게 잘 되어있는거같아요! 저는 mac환경에서 세팅했습니다. 우선 잘 돌아가는 상태의 전자정부프레임워크가 필요합니다. 저는 템플릿4종 중 포털사이트로 했고 버전은 4.0.0입니다. 전에 3.5.1.세팅해봤는데 디자인이 좀 더 이뻐졌네요!! 이클립스의 workspace의 해당 프로젝트를 원하는 곳에 복붙합니다. 이제 이 프로젝트를 인텔리제이로 열겠습니다. 두가지 오픈 방법이 있는데 어느것을 써도 상관없습니다. 저는 두번째 방법으로 해 볼게요 열면 다음과 같이 뜨는데 오른쪽 아래 maven으로 열어줘야합니다. maven project니까요!! 누르고 나서 모습입니다. 익숙한..
2022.07.26
-
Flutter로 앱을 만들었지만, 수익을 내는 방법을 찾지 못하고 계신가요?
Flutter로 알람 앱 수익화하기: 2가지 전략 Flutter로 알람 앱을 만들었지만, 수익을 내는 방법을 찾지 못하고 계신가요? 이번 글에서는 알람 앱을 수익화하는 두 가지 전략에 대해 알아보겠습니다. 1. 광고 수익화 광고 수익화는 가장 일반적인 수익화 방법 중 하나입니다. 앱 내에서 광고를 보여주고, 광고를 클릭하거나 보상형 광고를 시청하면 수익을 얻을 수 있습니다. Flutter에서는 AdMob과 같은 광고 플랫폼을 사용하여 광고를 쉽게 추가할 수 있습니다. AdMob은 Google의 광고 플랫폼으로, Flutter에서 쉽게 사용할 수 있습니다. AdMob을 사용하면, 앱 내에서 광고를 보여주고, 광고를 클릭하거나 보상형 광고를 시청하면 수익을 얻을 수 있습니다. 2. 인앱 구매 인앱 구매는 앱..
2023.10.01
-
Flutter 앱 배포하기: Play Store와 App Store에 앱 출시하기
Flutter로 개발한 앱을 배포하기 위해서는 앱 스토어에 출시해야 합니다. 이번 글에서는 Flutter 앱을 Play Store와 App Store에 출시하는 방법에 대해 자세히 알아보겠습니다. Play Store에 앱 출시하기 1-1. Google Play Console 계정 생성하기 앱을 Play Store에 출시하려면 먼저 Google Play Console 계정을 생성해야 합니다. Google Play Console은 앱을 업로드하고 출시하는 데 필요한 모든 기능을 제공합니다. 1-2. 앱 정보 입력하기 Google Play Console에 로그인하고 앱 정보를 입력합니다. 이 정보에는 앱 이름, 설명, 아이콘, 스크린샷 등이 포함됩니다. 1-3. APK 업로드하기 앱 정보를 입력한 후, APK..
2023.10.01
-
flutter 앱 개발시 사용자가 처음 설치했을 때 소개 페이지 만들어서 사용자 전환율 높이기! 튜토리얼 설명 페이지 Introduction screen
앱 사용자 전환율을 높이는 비결: Introduction Screen 활용 가이드 앱의 첫인상은 사용자들이 앱을 계속 사용할지 결정하는 중요한 요소입니다. 사용자에게 앱의 주요 기능과 장점을 명확하게 보여주는 것은 앱 사용자 전환율을 높이는 데 매우 중요합니다. Introduction Screen은 앱 처음 실행 시 사용자에게 앱의 주요 기능과 장점을 소개하는 화면입니다. 이 화면을 효과적으로 활용하면 사용자 경험을 향상시키고 앱 사용자 전환율을 높일 수 있습니다. 1. Introduction Screen 패키지 introduction_screen 패키지는 Flutter에서 쉽게 소개 화면을 만들 수 있도록 도와주는 유용한 패키지입니다. 이 패키지를 사용하면 다양한 디자인의 소개 화면을 손쉽게 만들 수 ..
2024.03.01
-
error Looking up a deactivated widget's ancestor is unsafe [Flutter]
아래 오류는 플러터(Flutter)를 처음 접하는 개발자부터 중급 이상의 개발자까지 두루 접하게 되는 문제인 것 같아요! 저도 개발하면서 몇 번이나 만났는지 몰라요ㅎㅎ 다시 보니 새롭죠? 😆 Error 내용 Looking up a deactivated widget's ancestor is unsafe. 이 오류는 주로 다이얼로그(Dialog)나 모달(Modal) 창을 사용할 때 발생하는 문제인데요, 특히 텍스트 필드를 클릭할 때 발생하는 경우가 많아요. 에러 발생 코드 show(BuildContext context){ var dialog = Dialog( child: Container( margin: EdgeInsets.all(8.0), child: Form( child: Column( mainA..
2023.11.01
-
데이터베이스 H2 콘솔 접근 에러 [Spring Boot]
아래 오류는 Spring Boot에서 H2 콘솔에 접근하는 방법을 설명한 가이드에 따라 작업하였으나 작동하지 않는다는 내용입니다. 에러 내용 http://localhost:8080/h2/ Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed Oct 26 12:31:46 BST 2016 There was an unexpected error (type=Not Found, status=404). No message available 해당 문제를 해결하기 위해 application.properties 파일을 다음과 같이 작성하였습니다. spring.h2.co..
2023.10.30
-
No GoRouter found in context [flutter] error
제목 No GoRouter found in context [flutter] error 아래 오류는 플러터(flutter) 앱을 개발하면서 자주 마주치게 되는 문제 중 하나에요! GoRouter를 사용하는 경우에 발생하는 오류인데요. 같이 살펴볼까요? 😄 Error Unhandled Exception: 'package:go_router/src/router.dart': Failed assertion: line 280 pos 12: 'inherited != null': No GoRouter found in context 위의 오류는 GoRouter를 사용하는 경우에 발생하는 오류에요. GoRouter를 사용하는 위젯에서 해당 오류가 발생하는 것 같아요. 해당 오류가 발생하는 코드를..
2023.10.30
-
Flutter 앱에서 구독 모델 구현하기: 알람 앱에서 재정적 수익 창출하기
Flutter로 앱을 개발하고 있다면, 앱에서 수익을 창출하는 방법을 고민하게 되죠?! 이번 글에서는 알람 앱을 예시로 들어, 구독 모델을 구현하는 방법에 대해 알아보겠습니다. Firebase 구성 Firebase를 사용하여 앱에서 구독 모델을 구현하려면, Firebase Console에서 구성해야 할 몇 가지 설정이 있습니다. 먼저, Firebase Authentication을 사용하여 사용자 계정을 만들고, Firebase Cloud Firestore를 사용하여 사용자의 구독 상태를 저장해야 합니다. 구독 상태 관리 Flutter에서는 Provider 패키지를 사용하여 상태 관리를 할 수 있습니다. 이를 사용하여, 사용자의 구독 상태를 관리하고, 해당 상태에 따라 앱에서 특정 기능을 제한할 수 있습니..
2023.10.03
-
연인을 아침에 깨워보세요 커플 알람 앱
애인이 아침에 잘 일어나지 못한다고요? 그럼 직접 깨워주세요! 메세지와 사진을 보내서 마음을 전해보세요. 금방 힘이 나서 일어날거에요. 커플만을 위한 알람 앱입니다. 아침에 알람이 울리면서 메세지와 사진을 확인할 수 있습니다. 상대를 위해 미리 메세지와 사진을 등록해두세요. 과거 주고 받은 메세지와 사진을 확인해보세요.
2023.08.02
-
push 알림 서비스를 위해 onesignal 설정 중 발생한 오류 Cycle inside Runner; building could produce unreliable results.
모바일 앱 개발시 Push Notification 을 설정하려면 push 서버를 만들어야하는데요! 서버를 만들려면 설정할게 한두가지가 아니죠!그래서 여러가지 푸시 서비스가 있는데요 onesignal은 사용량이 많지 않으면 무료로 사용할 수 있어서 설정해보려고 합니다.Android, ios 각각 따로 설정해주면 되는데요 Android는 설정이 간편하고 ios는 조금 해줘야할 게 있어요.ios 설정 중 오류가 발생합니다. Cycle inside Runner; building could produce unreliable results.Cycle details:→ Target 'Runner': ExtractAppIntentsMetadata○ Target 'Runner' has copy command from '..
2024.06.12
-
개인정보처리방침
*('https://secretwhisper.tistory.com/'이하 '일어나곰')*은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. 이 개인정보처리방침은 2023년 1월 1부터 적용됩니다. *제1조(개인정보의 처리 목적)*('https://secretwhisper.tistory.com/'이하 '일어나곰')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」..
2023.07.25
-
Spring Boot 테스트에서 @SpringBootConfiguration 찾을 수 없음
오류 메시지: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test java.lang.IllegalStateException 해결 : Spring Boot는 대부분 자동으로 설정되지만, 테스트 클래스에서 @SpringBootConfiguration 어노테이션을 찾을 수 없을 때 위와 같은 오류가 발생합니다. 이 경우, 테스트 클래스에서 @SpringBootTest 어노테이션을 사용하여 Application 클래스를 지정해주면 됩니다. @SpringBootTest(classes = Application.class) public cla..
2023.10.16
-
Flutter Error: Unable to locate Flutter directory or Android SDK
오류 메시지: flutter run -bash: Desktop/flutter/bin/flutter: No such file or directory 빌드를 실행할 때 Flutter 디렉토리를 찾을 수 없는 문제가 발생합니다. 또한 Android SDK를 찾을 수 없는 문제가 발생합니다. 원인: 이 문제는 Flutter 또는 Android SDK가 올바르게 설치되지 않았거나 환경 변수가 설정되지 않았기 때문에 발생할 수 있습니다. 다음과 같은 단계를 수행하여 문제를 해결할 수 있습니다. Flutter SDK가 설치되어 있는지 확인하세요. Flutter SDK가 설치되어 있지 않으면 Flutter SDK를 설치해야 합니다. Flutter SDK를 설치하는 방법은 Flutter 공식 웹사이트를 참조하세요. An..
2023.10.16
-
Flutter로 개발한 앱의 효과적인 사용자 온보딩, 쉽게 쓰게 하기!!
Flutter Alarm 앱을 사용하는 사용자들이 앱의 기능을 쉽게 이해하고 사용할 수 있게 해야겠죠?!. 이번 글에서는 Flutter를 사용하여 Alarm 앱의 효과적인 사용자 온보딩을 구현하는 방법에 대해 알아보겠습니다. 온보딩 페이지 구현하기 Flutter에서 온보딩 페이지를 구현하는 방법은 다양합니다. 이번 글에서는 PageView 위젯을 사용하여 온보딩 페이지를 구현해보겠습니다. class OnboardingPage extends StatelessWidget { final String title; final String description; final String image; OnboardingPage({required this.title, required this.description, re..
2023.10.04
-
첨부파일 다운로드 시 확장자 뒤에 .html 붙는 현상 해결 [스프링]
첨부파일 다운로드를 누르니까 모바일에서만(아이폰, 안드로이드) *.jpg.html, *.pdf.html 이런식으로 다운로드 되는 현상이 생겼어요 정상적으로 되는 사이트에서 네트워크 부분의 헤더를 확인해보니 header("Content-type: application/octet-stream"); 이 빠져있더군요 res.setHeader("Content-Disposition", "attachment; filename=\"" + new String(name.getBytes("euc-kr"), "8859_1") + "\""); res.setHeader("Content-Transfer-Encoding", "binary"); res.setHeader("Content-type", "application/octet-s..
2022.11.25