기본 콘텐츠로 건너뛰기

개발일기 #3 : jetpack compose 숫자 전용 입력 받기

원본출처: 티스토리 바로가기 오늘은 앱을 구현하는 과정에서 숫자를 입력받을 수 있는 TextField을 구현해 보도록 하겠습니다. 물론 이 부분도 힌트를 얻기 위해서 구글링을 했으며, 필요한 부분만 수정을 해 보았습니다.    코드 구현 import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.OutlinedTextField import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.Font import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.sp import com.billcoreatech.bespeak1003.R import com.billcoreatech.bespeak1003.ui.theme.softBlue @Composable fun NumberField( labelText : Int, holderText : Int, value: Number?, onNumberChange: (Number) -> Unit, ) { var fontFamil

안드로이드 앱 만들기 : bottom navigation 따라해보기 3번째

원본출처: 티스토리 바로가기 이 글은 이전 포스팅에서 연속됩니다.  https://billcorea.tistory.com/238   안드로이드 앱 만들기 : navigation 을 편리하게 ? (두번째 이야기) https://flatteredwithflutter.com/using-compose-destinations%ef%bf%bc/ Using compose destinations We will cover briefly: Current navigation in composeUsing compose destinations(Optional) Modify exi.. billcorea.tistory.com 이전 글에서 작성했던 navigation 은 그저 화면의 이동에 중점을 두었습니다. 그러다 보니, 화면 하단에 메뉴를 달고 그 메뉴는 항상 표시가 되어야 했지만, 그렇지 못했습니다 그래서 이번에는 꼭 하단 메뉴는 그대로 두고 content 내용만 변경되는 모양으로 만들어 보기로 했습니다.    다시 원작자가 작성한 코드를 살펴보면서 따라 하기를 해 보았습니다.  먼저 참조할 소스 코드의 github 링크는 아래와 같습니다.  https://github.com/raamcosta/compose-destinations   GitHub - raamcosta/compose-destinations: Annotation processing library for type-safe Jetpack Compose navigation with no boilerpl Annotation processing library for type-safe Jetpack Compose navigation with no boilerplate. - GitHub - raamcosta/compose-destinations: Annotation processing library for type-safe Jetpack Compose na.

파이선으로 번역기를 돌려볼까 ?

원본출처: 티스토리 바로가기 오늘은 영문 번역에 대한 이야기를 잠깐 해 볼까 합니다.  아직 테스트가 원활하지는 않지만, kakao에서 지원했던 번역 API는 2022.07.01 사용이 중지되어 기존 허용되었던 api 사용자에게는 2023.06.30까지만 지원한다고 합니다.  아무튼 현재 무료로 사용할 수 있는 번역 API는 구글, naver, kakao 등이 있습니다.    kakao가 지원하는 다음 버전의 번역API는 cloud에 포함되면서 개인이 사용하기에는 조금 더 장벽(?)이 있는 것처럼 보입니다. 좀 더 알아보아야겠지만요.   아무튼 코드는 다음과 같이 구현을 해 보았습니다.   # POST /v2/translation/translate HTTP/1.1 # Host: dapi.kakao.com # Authorization: KakaoAK {REST_API_KEY} # Content-type: application/x-www-form-urlencoded # curl "https://openapi.naver.com/v1/papago/n2mt" \ # -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \ # -H "X-Naver-Client-Id: ..............." \ # -H "X-Naver-Client-Secret: ..........." \ # -d "source=ko&target=en&text=만나서 반갑습니다." -v import os import requests import docx2txt import urllib.request import json baseURL = 'https://dapi.kakao.com/v2/translation/translate' naverURL = 'ht

개발일기 #2 : 결제 모듈을 찾아라...

원본출처: 티스토리 바로가기 앱에서 사용되는 결제 모듈 (PG 연동)의 경우는 대부분이 내 상점에서 결제를 요청하는 방식에 포커스가 맞게 되어 있어, 이를 이용하는 것은 맞지 않는 것 같습니다.    다만, 그래도 알아보았던 내용은     Tosspayment  https://www.tosspayments.com/   토스페이먼츠 결제를 간편하게, 사업은 더 편하게 www.tosspayments.com 대강 살펴본 바로는 java script 중심의 지원을 하는 것으로 보입니다.  사용을 해 보면 좋을 것 같기는 합니다. 다만, 서버가 없는 상태에서 사용을 구현해 보기에는 아직 그 정도의 스킬은 없어서...    Bootpay https://www.bootpay.co.kr/   무료 결제 연동 API 서비스 개발자를 위한 PG 연동 서비스로, 빠른 결제 연동, 더 높은 결제성공율, 무료 통계 서비스를 제공합니다. www.bootpay.co.kr 이 또한 연동을 위한 API 지원이나, 여러 가지 자료가 있고, 구글링을 했을 때 추천하는 글을 많이 보았습니다. 실제 구현을 해 보기에는 어떤지 아직 감이 오지 않습니다.  다른 여러 PG사와 연동을 지원하는 것이 매력일 듯 해 보이나, 실제 비용이 청구되는 시점에 어떤 생각이 들지는 체험을 해 보지 못해 알 수 없습니다.    다른 결제 수단들의 연동이 Bootpay 을 경유(?) 모양이 로만 구글링의 결과가 보이기 때문에 일단...   여기서 자료 조사는 그만해야 할 것 같습니다.    결론 이번에 구현하고자 하는 앱의 결제 모듈 연동은 제외 대상이 되었습니다.  그래야 목표했던 앱의 구현에 쉽게 도달할 수 있을 것으로 생각이 되기 때문입니다.     To be continued  

안드로이드 앱 만들기 : triggeringGeofences 가 뭐지 ( geoFenceing)

원본출처: 티스토리 바로가기 지오펜싱 트리거 되는 위치의 명칭 표시  지오펜스 앱을 수정하면서 또 하나를 찾았습니다.  구현해 보고 싶었던 것은 지오펜싱에서 찾은 위치에 대한 알림을 구현할 때 현재 내가 도착한 위치가 어떤 것 때문에 표시가 되고 있는지 알고 싶다는 것입니다.  물론 잘 아시는 분들은 이미 찾으셨을리라고 생각이 되지만, 이제 구현을 해 가고 있는 분들을 위해서 기억을 남겨 두고자 합니다.    import android.annotation.SuppressLint import android.app.NotificationChannel import android.app.NotificationManager import android.app.PendingIntent import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.graphics.Color import android.os.Build import android.os.Bundle import android.util.Log import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import com.billcoreatech.ontheway801.MainComposeActivity import com.billcoreatech.ontheway801.R import com.google.android.gms.location.Geofence import com.google.android.gms.location.GeofenceStatusCodes import com.google.android.gms.location.GeofencingEvent class GeofenceBroadcastReceiver :

가는 길에 메모 앱 사용자를 위한 설명서 (On The Way)

원본출처: 티스토리 바로가기 이 글은 앱 사용자를 위한 설명입니다.  (2022.10.03 13시 이후에 적용된 패치 버전 기준 입니다.)   https://play.google.com/store/apps/details?id=com.billcoreatech.ontheway801     주변검색, 주변찾기, 가는길에, 요소수 주유소 - Google Play 앱 내주변의 장소를 선택하고, 선택한 위치에 도착하면 사전에 등록한 알림을 보내 줍니다. play.google.com 앱 개발의 취지 집에 가는 길에 들려야 하는 곳이 있다면 근처에 도착했을 때 알림을 주고자 했습니다.  그 이후에 요소수 품귀가 있었던 때에는 데이터 포털(www.data.go.kr)에서 제공하는 요소수 재고가 있는 주요소 정보를 제공하고자 했습니다.    이 버전은 이 버전은 이전 버전에서 화면 구성을 새로게 수정합니다. 메뉴의 구현도 달라집니다.  설정에서 등록하는 지역에 따라 요소수 주요소 정보를 제공합니다. (이 정보는 opinet - 유가정보 api를 활용합니다.) 지도 화면에는 주변에 있는 주유소 위치 정보와 최근 우리 지역의 평균 유가정보를 표시합니다. (이것도 opinet에서 제공된  api을 활용합니다.)   설정 하기 설정화면1       다른 사람과 공유할 별칭을 나의 위치정보를 주기적으로 전달하도록 설정할 때 상대방 화면에 표시될 나의 별칭입니다.        위치인식범위는 앱이 실행되는 스마트폰의 위치를 사전에 선택한 위치에서 얼마나 떨어진 상태까지 인식하게 할 것인가를 설정합니다.    나의 위치에서 얼마나 떨어진 곳에 있는 곳을 검색하도록 할 것인가를 설정 합니다. 키워드 검색이나, 카테고리 검색을 할 때 찾을 수 있는 범위를 지정하는 것입니다.   한번 지정된 위치는 몇 시간 범위 내에서 진입/이탈하였을 때 알림을 보여줄 것인지 지정하는 것입니다.    위치정보를

개발일기 #1 제목 정하기...

원본출처: 티스토리 바로가기 이제 또 새로운 앱을 하나 만들어 볼까 합니다.  제목은 가칭 '주문이요'라고 했습니다.    기획의도  요즘은 매장에 가면 다들 테이블에 테블릿 하나쯤 거치하고 주문을 받고 실시간으로 결제도 진행하고 그렇게 매장을 운영하는 경우를 종종 보게 됩니다.  그것이 좋은 지 어떤지는 모르겠지만...  그런 매장을 하나 가져보고 싶은 욕망(?)이 생기는 건... 이제 떠나야 할 곳이 어디인지 보이기 때문 이기도 합니다.   앱 로고 이미지 이것은 맞는 가 하는 문제는 나중에 생각해 보려 합니다. 지금은 무언가를 해야할 것 같은 시기이기도 하고 해서...   준비사항 아직은 아무런 준비도 없고 그저 앱을 하나 기획하고 기본 화면만 하나 만들어서 무작정 게시를 시작합니다.  다들 아시는 것처럼 playstore console 에서 새로 앱 만들기를 하고 게시할 준비를 시작합니다. 기본 스토어 등록 정보 이걸 하기 전에 준비해야 할 것들은  로그 이미지 ( 앱 아이콘은 투명한 PNG 또는 JPEG, 최대 1MB, 512px X 512px이어야 하며   디자인 사양   및   메타데이터 정책 을 준수해야 합니다. ),  기본 아미지 ( 그래픽 이미지는 PNG 또는 JPEG, 최대 1MB, 1024px X 500px이어야 합니다. ), 동영상 링크 (보통은 youtube 링크를 입력합니다.) 그리고 여러 장의 앱 이미지 ( 휴대전화 스크린숏을 2~8장 업로드하세요. 스크린숏은 PNG 또는 JPEG, 장당 최대 8MB, 가로세로 비율 16:9 또는 9:16, 가로세로 길이는 320px X 3840px 사이여야 합니다.) 등을 준비하여야 합니다.   다음은 앱 콘텐츠에서 나오는 각 항목을 설정해 두어야 합니다.  그다음은 앱을 빌드해서 내부 테스트부터 하건, 바로 프로덕션으로 하건 앱을 업로드하고 게시 허가가 나오길 기다려 봅니다.    기다려 봅니다.