반응형

전체 글 214

Kotlin 싱글톤 사용시 주의 사항

싱글톤은 프로세스가 살아 있는 동안 객체가 살아있고 필요한 정보를 한곳에 모울 수 있어 많이 사용하는 방법입니다. 하지만 안드로이드에서는 이 방법을 사용할 때 주의가 필요합니다. 이유는 안드로이드는 메모리가 부족해지거나 절전 모드에서 필요시 프로세스를 죽이고 사용자가 앱을 다시 전환했을 때 재실행하기 때문입니다. 이 때의 재실행은 앱아이콘을 클릭하여 실행하는 경우와는 틀리게 최상단의 액티비티만이 재생성됩니다. 이런 경우에 프로세스가 재실행되는 관계로 프로세스 재실행시 싱글톤은 재생성되기 때문에 싱글톤의 내용이 초기화됩니다. 싱글톤의 사용에 의존하는 경우 갑자기 초기화된 싱글톤을 사용하게 되면 알수 없는 버그가 앱에서 발생할 수 있습니다. 즉, 앱이 실행되는 동안 필요한 영구적인 정보를 싱글톤에만 저장하고..

Kotlin 테스트를 위하여 앱 프로세서 죽이는 방법

안드로이드는 OS가 메모리가 부족해질 때나 절전 모드상태에서 앱을 죽이는(kill) 경우가 발생할 수 있습니다. 이런 경우는 앱을 처음 실행될 때와는 다르게 앱이 죽기 전에 마지막 실행한 액티비티를 안드로이드는 실행합니다. 여기서 실행한다는 말은 onCreate, 즉 아예 생성부터 다시 한다는 말입니다. 참고로 이 경우 최상단 액티비티 이전의 액티비티들은 재생성되지 않고 다시 생성된 최상단의 액티비티가 finish() 명령을 사용한 경우 처럼 닫혀 이전 액티비티가 최상단 액티비티가 될 때 역시 생성부터 다시 됩니다. 메모리가 부족한 상태에서 앱이 안드로이드 OS에 의하여 죽었을 때 앱 전환시의 스크린샷이 그대로 남아있어 앱 전환 스크린 샷을 클릭하면 앱은 전환됩니다. 이 때 내부적으로 앱은 재시작됩니다...

[서평] 이득우의 언리얼 C++ 게임 개발의 정석

언리얼(Unreal) 5 엔진이 나온지 조금 지났습니다. 하도 유명하기도 하고 최신 3D 엔진의 구조가 궁금하기도 해서 최근에 언리얼 엔진 5를 조금 공부하고 있습니다. 기본적으로는 툴 사용법과 블루 프린트를 공부하였습니다. 적당히 툴과 블루프린트를 이해했을 때 본격적으로 C++ 이용한 사용법을 연구해 보려고 하였습니다. 하지만 블루프린트나 툴사용법과는 다르게 유튜브나 인터넷에서는 적당한 엔리얼 엔진 C++ 튜토리얼을 찾기가 힘들었습니다. 그래서 보기 시작한 책입니다. 또한 언리얼 C++ 관련 한글 책은 찾은게 이 책이 유일하여 본 책이기도 합니다. 이 책은 언리얼 4를 기반으로 작성되어 있는 책입니다. 하지만 언리얼 5가 언리얼 4의 확장인 관계로 이 책에 있는 내용에 API 변화만을 적용한다면 언리얼..

스스로 단어장

플레이스토어에서 검색하실 때는 "스스로 단어장" 으로 쌍따움표를 붙여서 검색해야 검색이됩니다. (아니면 gosae로 검색하셔도 됩니다.) 애플 앱스토어와 틀리게 플레이스토어는 앱이름을 정확히 검색해도 쌍따움표를 붙이지 않으면 나오지 않습니다. 플레이스토어에서 출시 초기에 검색되게 하려면 쉽지 않은 듯 합니다. 스스로 단어장은 암기할 외국어 단어를 입력하고 암기하고 테스트하는 단어 습득 전 과정에 도움을 주는 앱입니다. 쉬운 사용법을 바탕으로 단어 암기라는 기본 기능에 충실한 앱입니다. 스스로 단어장을 활용하여 아래와 같은 과정을 통하여 단어를 암기할 수 있습니다. 자신이 암기하고자 하는 단어들을 입력하고 관리합니다. 이때 너무 많은 단어의 입력은 암기할 단어가 많아져 오히려 도움이 안될 수도 있습니다. ..

스스로 단어장 앱 개인정보 처리방침

‘스스로 단어장’ 개인정보 처리방침은 다음과 같습니다. 개인 정보 처리방침이 수정될 경우 다시 공지하겠습니다. 개인 정보는 휴대 기기에 저장되며 아래에서 이야기한 용도 외에 사용되거나 외부에 제공되지 않습니다. 광고를 위하여 식별할 수 없는 정보(unidentifiable information)를 모을 수 있습니다. 식별할 수 없는 정보(unidentifiable information)가 아래와 같이 사용될 수 있습니다. Firebase/ Google Analytics 회사:Google Inc. 목적:마케팅 성과 측정과 품질 향상 AdMob SDK 회사 : Google Inc. 목적 : 광고 삽입 개인 정보에 대하여 궁금하신 점이나 의견이 있으시면 아래 연락처로 연락주시기 바랍니다. - email : c..

SwiftUI 다크 모드 지원 : 모드 변경시 색상 자동 변경

iOS는 다크 모드를 지원합니다. iOS에서 다크 모드 변경시 iOS에 의하여 앱의 네비게이션 바의 색상이나 기본 글자색 같은 경우는 자동으로 변경됩니다. 하지만 사용자가 직접 설정한 색은 다크 모드에 맞게 변경되지 않습니다. 이런 이유로 자동으로 변경되는 색상과 그렇지 않은 색상의 부조화로 인하여 화면의 가독성이 떨어지거나 화면 색상이 깨진거처럼 보기 좋지 않게 됩니다. 여기서는 다크 모드시 자동으로 색상이 변경하는 방법을 알아보도록 하겠습니다. 위 스크린샷처럼 우선 Asset를 프로젝트에서 선택하여 줍니다. 그 다음으로 서브 메뉴가 나오게 한 뒤에 "New Color Set"을 선택하여 줍니다. 스크린샷의 BackGroundColor와 같이 색상을 선택하면 Any Appearance와 Dark가 나옵..

iOS 프로그래밍 2022.10.18

나만의 프로젝트(My Own Project) 앱을 개발한 후에...

나만의 프로젝트는 ios, iPhone용 개인 프로젝트 관리 앱입니다. 프로젝트 관리를 위한 앱이지만 팀단위의 협업에 최적화된 프로젝트 관리가 아니라 개인의 프로젝트 관리에 초점을 맞춘 앱입니다. 이 앱은 다양한 프로젝트를 정의하고 정의된 프로젝트에 따라서 할 작업들을 정의하고 작업에 따라 할 일들을 정의합니다. 그리고 할 일들의 진행 상태를 관리합니다. 앱은 이렇게 정의되고 관리되는 프로젝트의 진행상황을 한눈에 보게 해줍니다. 필요 시 텍스트로 변환하여 다른 프로그램에서 데이터를 편집해서 사용하거나 백업도 가능합니다. 실제로 이 앱도 개발 중인 이 앱의 베타 버전을 사용하여 개발 후반 부에는 개발이 관리되었습니다. 이번 앱은 이전에 개발한 폭격 방어자와는 다르게 광고를 살짝 넣은 무료 버전으로 출시하였..

개발이야기 2022.10.12

나만의 프로젝트

개인적으로 하는 프로젝트나 할 일들을 프로젝트로 만들어 진행 상황을 직관적으로 관리하세요! 단순히 할 일 목록으로 관리하는 것보다 전체적인 진행 상황을 파악하고 관리하는데 도움이 될 것입니다. 이 앱의 사용법은 간단합니다. 프로젝트에 작업들을 정의합니다. 그리고 작업당 할 일들을 정의하고 진행 상황을 관리하면 됩니다. 개인의 프로젝트 관리에 초점이 맞추어져 있어 회사 등의 단체에서 하는 프로젝트 관리와 같은 복잡함이 없습니다. 프로젝트라고 개념을 가지고 우리는 일상의 많은 일들을 프로젝트로 정의할 수 있습니다. 간단한 예로 ‘자가용 운전하기’라는 프로젝트를 만들 수 있습니다. 우리는 자가용을 운전하기 위해서 운전 ‘면허 획득’ 이라는 작업과 ‘차 구매’라는 작업을 만들 수 있습니다. 그리고 ‘면허 획득’..

나만의 프로젝트 앱 개인정보 처리방침

‘나만의 프로젝트’ 개인정보 처리방침은 다음과 같습니다. 개인 정보 처리방침이 수정될 경우 다시 공지하겠습니다. 개인 정보는 휴대 기기에 저장되며 아래에서 이야기한 용도 외에 사용되거나 외부에 제공되지 않습니다. 광고를 위하여 식별할 수 없는 정보(unidentifiable information)를 모을 수 있습니다. 식별할 수 없는 정보(unidentifiable information)가 아래와 같이 사용될 수 있습니다. Firebase/ Google Analytics 회사:Google Inc. 목적:마케팅 성과 측정과 품질 향상 AdMob SDK 회사 : Google Inc. 목적 : 광고 삽입 개인 정보에 대하여 궁금하신 점이나 의견이 있으시면 아래 연락처로 연락주시기 바랍니다. - email : ..

젤다 야생의 숨결을 클리어한 후에...

이 게임은 일본에서 명작으로 평가받은 젤다 시간의 오카리나를 과거에 재미있게 플레이한 경험이 있어 비슷한 액션 RPG정도로 생각하고 플레이 하였습니다. 하지만 생각 밖에 너무나 다른 게임성에 굉장히 놀랐습니다. 2017년에 나왔지만 2022에도 여전히 인상적인 게임인 듯 싶습니다. 우선 이 게임은 자유도 높은 오픈 월드 RPG라서 놀랐습니다. 자유도 높은 MMORPG도 메인 퀘스트의 선후 관계가 있어 진행하는 것이 흔한데 이 게임의 퀘스트는 초반 이후 거의 선후 관계가 없습니다. 그냥 가논을 쳐부수는 큰 흐름의 퀘스트가 초반에 주어지는 것이 다입니다. JRPG는 스토리 위주로 선후 관계의 퀘스트 들을 진행하는 것이 일반적인데 이 게임은 그런 류의 게임이 아닙니다. 다양한 퀘스트가 있기는 한데 거의 사당을..

기타 2022.09.15
반응형