본문 바로가기

전체 글

(22)
AI로 만들어본 안드로이드 탱크 슈팅게임(옛 포트리스 같은) 탱크 슈팅게임몇일전 AI로 대략 60%정도의 도움을 받아 게임을 개발해보았다사용된 AI는 얼마전 Perplexity 라는 앱을 몇개월간 무료로 사용하게되었는데 이걸로 게임을 만드는데 약간 도움을 받아보기로 했다이 게임은 나름 프레임워크를 갖고 있다. 같은 프레임워크를 사용하게되면, 하이스코어 관리나 아직 개발은 안되었지만 P2P로 게임을 할 수 있게 할 계획이다.AI에게 어떤부분을 도움받을지 개발하면서 생각이 조금씩 바뀌었는데, 처음엔 게임 코드 전체를 AI가 완벽하게 구현해줄거라 생각했었다.하지만 그 생각은 오래가지 못했다. AI는 질문을 시작할 때 제시한 코드의 구성을 그대로 유지하지 못한다.특히 생략하거나 소소한 설정이나 처리를 누락하여 제시하는 경우가 많다. 이렇다 보니 제시한 코드를 그대로 덮..
네이버 API ReverseGeocoding 활용하기 구글의 Reverse Geocoding도 있지만, 한국 정서에 맞는 알맞은 주소를 제공하는 네이버 API 서비스를 활용해보았다. 우선 네이버의 ncloud.com에서 Application > map 서비스를 사용신청하고 필요한 준비를 진행한다. 각각의 프로젝트에 맞는 설정이라 부차적 설명은 생략하기로 하고 iOS 코드를 확인해 보도록 하자. 소스는 Objective-C 로 작성되었다. # NaverMapReverseGeocode.h // // NaverMapReverseGeocode.h // // Created by James Hong on 2021/08/02. // #import #import #import "AFNetworking.h" NS_ASSUME_NONNULL_BEGIN #define GEOC..
기상청 동네예보 활용하기 php 소스 data.go.kr 에서 제공하는 동네예보는 격자형 존을 기준으로 정보가 제공되는 시스템이다. API 연동 가이드 하단에 C 소스를 php로 변환해 포함하였고, 전체적으로 위경도값만 제공하여 필요한 날씨정보를 가져오도록 클래스를 제작해보았다. 여기까지 클래스고 사용법은 다음과 같다.
APM 에서 PHP7.X 사용시 다운로드되는 현상 해결 오랜만에 APM을 설치할 일이 생겨서 서버를 설정하고 테스트하던 중 아주 어이없게 html 이나 php가 다운로드되는 일이 발생하였다. 이것은 php 7.x 이전 버전의 설정방법으로 설정하는 경우 발생되는 현상으로 7.x 버전 이상에서는 설정 방법이 달라짐을 알 수 있었다. 보통 html이나, php 파일의 확장자를 갖은 웹 소스를 작성하는 경우가 많고, 이 두파일은 URL을 통해 직접 호출되는 형태라 AddType 에 지정하여 php가 파싱한 결과를 웹에 연결하도록 하는게 그동안의 방법이였다. 언제부터 바뀐건지 정확히는 모르겠으나(이 환경으로 개발할 일이 요즘 없어서...) 많은 답변에서 다들 알 수없다는 글들을 많이 봐온 관계로, 이 글에 직접 해결방법을 제시하고자 합니다. 설치환경은 Apache 2..
암호를 만드는 키보드 1. 소개 키보드 어플리케이션(IME) 개발 프로젝트 두번째로 개발한 암호생성 키보드 락키다. 락키는 사용자가 입력한 텍스트나 이미지를 암호화한 텍스트로 변환해주는 기능을 제공한다. 이 때 사용한 암호화 방식은 AES256을 기반으로 하고 있으며, 커스트마이징된 암호화기법을 추가로 반영하여 비인가 방법으로는 거의 복호화가 불가능한 상태가 된다. 예를들어 특정문장을 카카오톡으로 상대와 주고받을 때 카카오서버에 대화 내용자체를 그대로 보여주지 않으려할 때 사용할 수 있다. 카카오서버에는 암호화된 텍스트만 보관되게되며, 그 누구도 그 내용을 보호화 할 수 없다. 다만, 같은 키보드를 사용하면서 같은 암호화 키값을 사용하는 사용자끼리는 암호화 복호화를 자유롭게 이용할 수 있다. 역시 기타 검색기능도 함께 제공하..
번역키보드 소개 자작앱을 소개하려고합니다.처음 기획할 당시만 해도 이런류의 앱은 존재하지 않았지만, 이젠 구글이나, 네이버에서도 비슷한 앱을 개발해 런칭했더군요제걸 카피한것 같은 느낌이 들지만, 뭐 사람이란게 생각하는게 거의 비슷하다보니 패스어찌되었든...1. 번키(번역하는 키보드) - 안드로이드https://play.google.com/store/apps/details?id=com.bunkeyboard&pcampaignid=web_share&pli=1 번역하는 키보드 - Google Play 앱* 원하는 언어로 바로 번역 - 번키로 문장을 입력하고 1 touch면 원하는 언어로 번역된 문장이 입력됩니다 - 번역하고 싶은 외국어를 선택하고 복사하면 바로 번역된 문장이 나타납니다 - 구글, 네play.google.com*..
테스트용 런처 함께만들기 너무 오랜만이네요 앱을 개발할 때 테스트용 아이콘과 운영용 아이콘을 동시에 생성할 수 있습니다. 1. AndroidMenifest.xml 2. 인트로용 Activity 자바파일을 작성하고 SplashScreen.java package com.ecsoft.testapp; public class SplashScreen extends Activity { ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.intro); initMode(false); } /** * 테스트의 경우 빌드일부터 일정 기간까지만 앱 사용을 허용한다. * @retu..
Single instance progress dialog 앱이 동작하면서 어떤 백그라운드 처리를 하려고 할 때 UI를 블럭해야하는 경우가 있다. 이 때 백그라우드 처리가 중복되거나 복수의 처리 다른 Activity에서 각각 프로그래스 처리를 하다 보면 중복된 프로그래스로 인하여 사용자가 혼란스럽거나, 매끄러운 처리가 안될 수 있다. 이럴 때 어플리케이션이 한개의 프로그래스 다이얼로그를 공유하여 처리하면 깔끔하게 UI를 블럭할 수 있다. 1. 프로그래스 클래스 public class LoadingProgress { public static Activity activity; private static LoadingProgress loadingProgress; private ProgressDialog progressDialog = null; private Handl..