#billcorea #운동동아리관리앱 🏸 श्नीडल, बैडमिंटन क्लबों के लिए एक आवश्यक ऐप! 👉 मैच खेलें - स्कोर रिकॉर्ड करें और विरोधियों को खोजें 🎉 कहीं भी, अकेले, दोस्तों के साथ, या क्लब में बिल्कुल सही! 🤝 अगर आपको बैडमिंटन पसंद है तो इसे जरूर ट्राई करें
ऐप पर जाएं 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay
원본 출처의 글 중에서 눈에 가는 것은 json string을 이용해서 직접 코드를 생성해 가는 것입니다. 개발을 하다 보면 json 데이터를 받아와서 데이터로 활용해야 하는 경우가 많습니다. 지금 하고 있는 작업 중에도 그런 부분이 있고요. opinet에서 받아오는 API 정보를 활용하는 코드 작업을 하는 동안에도 유용하게 사용이 될 것 같아서 정리를 해 두려고 합니다.
plugin market에서는 위 글을 참고해 보시면 될 것 같습니다. 먼저 생성된 코드를 보도록 하겠습니다
import com.google.gson.annotations.SerializedName
data class AvgRecentPriceBean( @SerializedName("RESULT") var result: RESULT = RESULT() )
data class RESULT( @SerializedName("OIL") var oil: List<OIL> = listOf() )
data class OIL( @SerializedName("DATE") var date: String = "", @SerializedName("PRICE") var price: Double = 0.0, @SerializedName("PRODCD") var prodcd: String = "" )
다만 생성된 코드에서 수정한 부분은 변수 명칭이 조금 보기가 좋지 않습니다. 해서 저는 생성된 변수 이름을 전부다 소문자로 수정했습니다.
이제 생성하는 순서를 보도록 하겠습니다. 먼저 plugin 을 설치해야 하기 위해서 android studio의 File 메뉴에서 Setting을 들어가 보겠습니다. 그 안에서 Plugins을 찾아봅니다.
setting 에서 plugin 찾아보기
plugins에서 json을 입력하고 검색을 하면 바로 나오더군요. 그래서 Json To Kotlin Class을 설치하였습니다.
json string 을 변환해 보기
먼저 opinet에서 수신받은 json string을 변환해 봅니다. 실행하는 방법은 alt-K (메뉴에서는 Code - Generate 을 선택했을 때 나오는 팝업메뉴에 Kotlin Data Class from Json을 선택 합니다. ) 을 입력 하면 위 그림과 같이 팝업이 나옵니다. 그러면 json string 을 안에 입력하고 format 버튼을 클릭하면 위 그림과 같이 정렬된 json string 을 볼 수 있습니다.
SerializedName Annotation을 넣기 위해서 선택하기
그다음은 아래 왼쪽에 있는 Advanced 버튼을 클릭하고 2번째 있는 Annotation을 선택합니다. opinet API을 호출하는 방식을 retrofit을 이용하여 json format을 수신을 하기 위해서 Gson을 선택했습니다.
그리고 주의할 것은 Class 파일을 먼저 생성한 다음 진행해야 합니다. 그렇지 않을 경우 현재 수정 중인 class 소스에 그냥 넣어 주기 때문입니다. 이제 생성할 class 이름을 입력하고 Generate을 실행하면 처음에 보여 드렸던 것과 같은 source code을 얻을 수 있습니다. 이제부터는 dataBean 구현을 위해서 code 입력을 줄여볼 수 있을 것 같습니다.
앱을 개발하는 동안 이런 오류가 나타납니다. gradle 파일에 선언된 implementation을 살펴보아도 lifecycle 과 연관된 것은 선언된 내용이 없습니다. 같은 class 내용이 여기저기에 있다는 내용이고, 작성한 코드가 아닌 참조하는 것들 중에서 중복이 나타난다는 의미입니다.
#스하리1000명프로젝트, ¿Perdido en Corea? Incluso si no hablas coreano, esta aplicación te ayuda a moverte fácilmente. Simplemente hable su idioma: traduce, busca y muestra resultados en su idioma. ¡Genial para viajeros! Admite más de 10 idiomas, incluidos inglés, japonés, chino, vietnamita y más. ¡Pruébalo ahora! https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127
구글에서는 이제 android 13을 대상으로 앱을 게시하기 위해서는 광고 ID을 선언해야 한다고 합니다. 물론 이전부터(2022.4.1 이후) 적용되기 시작했던 부분이나, 9월이 된 이제 서야 준비를 해 봅니다. 그동안은 API 버전이 32 이하인 경우에만 적용되는 앱을 배포하여 왔기 때문에 문제가 되지 않았으나, 이제 API 33 이상 버전으로 옮겨 가기 위해서는 준비를 해야 할 때가 되었다고 볼 수 있습니다.
이번에 패치를 하는 앱이 있어서 시도를 해 보았습니다. 그래서 일단 앱은 정상적으로 패치가 적용 되어 게시되었습니다. 아직 어떤 의미가 있는지는 알 수 없으나, playstore의 게시에서 퇴짜(?)를 받지 않았으니 정리를 해 두고자 합니다.
MainActivity 에 다음과 같이 function을 추가하고, onCreate에서 해당 function을 호출하는 정도... 이걸로 끝?
fun getIdAndLat() { var adInfo: AdvertisingIdClient.Info? = null; try { adInfo = AdvertisingIdClient.getAdvertisingIdInfo(this@MainComposeActivity) } catch (e : java.lang.Exception) {
} var GAID = adInfo?.id var limitTracking = adInfo?.isLimitAdTrackingEnabled
var client = AppSet.getClient(this@MainComposeActivity) var task = client.appSetIdInfo task.addOnSuccessListener { info -> var scope = info.scope var id = info.id
오늘은 어제에 이어 애드센스에 결제정보를 등록해 보아야겠다. 어제 알아본 것과 같이 해외에서 입금받을 때 수수료가 제일 저렴한 경우는 카카오 뱅크와 하나은행 정도였으니 두 곳의 swift code을 고객센터를 통해서 확인해 보았다.
요새는 모바일에서 운영하는 고객센터를 통해서 유선 질의를 하지 않아도 쉽게 해당 정보를 확인할 수 있었다.
이제 등록을 해 보자. 먼저 애드센스 로그인 후에 결제 화면에 들어가 보자.
이 그림들의 순서대로 해서 결제정보에 결제 수단을 추가하고, 새 은행 정보를 추가해서 등록하면 된다.
은행 정보를 입력할 때는 해당 은행에 등록하면서 입력했던 영문 이름이 필요하므로 해당 정보를 먼저 찾아야 하고, 나머지 정보는 swift code을 확인하면서 찾은 정보만 있으면 된다. 은행 이름도 영문 이름으로 입력을 해야 하기 때문에 위에서 확인한 swift code 관련 내용에서 찾아서 입력하면 되고, 계좌번호는 실제 내가 사용하고 있는 계좌번호를 입력해 주었다.
중개은행, FFC 또는 FBO 입력은 선택사항으로 되어 있으니, 일단 무시하고 넘어가 보겠다. 이제 다른 연락이 없다면, 내 계좌로 수입이 들어오는 날을 손꼽아 기다려 보아야겠다.