본문 바로가기

개발관련 정보

(15)
XCODE 16.3에서 WEB 리소스 파일 관리 최근에 어떤 프로젝트를 진행하면서, 하도 어이없이 몇일을 삽질했던일을 공유하고자 한다.XCODE 는 그동안 폴더의 유형을 가상의 그룹과 실제 경로로 따로 관리하도록 했었다그런데.. 15언제부터였는지는 정확히 모르지만, 16.3으로 개발중인 나에게 시련이 왔다.복잡한 구조의 웹 소스를 프로젝트에 담아야할 일이 생긴것이다.아무 생각없이 프로젝트 웹 소스 전체 구조의 폴더를 프로젝트에 담았다.하지만 결과는 오류 69개.. ㅎㅎ 이게 어찌된 일인가오류는 css등 동일한 파일명을 "Copy Bundle Resources"에서 담고 있었기 때문이다.그렇지, 이럼 오류가 나겠지 생각하며, 로컬 파일들의 타겟을 모두 제거했다그랬더니, 앱이 해당 파일을 전혀 찾기 못하는 상태가 되더라... 허참이렇게 시련이 시작되었다...
네이버 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..