본문 바로가기
반응형

취미 & 반려생활/개발자 팁41

[iOS] UIAlertView didDismissWithButtonIndex 문제, 지금은 어떻게 해결할까? (UIAlertController 기준) 예전에 iOS 개발을 하셨던 분들은 UIAlertView와 그 델리게이트 메서드인 clickedButtonAtIndex:, didDismissWithButtonIndex: 때문에 한 번쯤은 고생해 보셨을 것입니다. 저 역시 Alert가 백그라운드 전환(Home 버튼)이나 다른 Alert와 얽히는 상황에서 델리게이트가 예상대로 호출되지 않아 며칠 동안 디버깅(삽질)을 했던 기억이 있습니다.하지만 이제는 상황이 많이 달라졌습니다. UIAlertView는 iOS 8에서 이미 deprecated 되었고, iOS 13 이후로는 사실상 쓰지 않는 레거시 API입니다. 현재는 UIAlertController를 사용하는 것이 정석이며, 예전처럼 didDismissWithButtonIndex에 의존해 상태를 관리하는 방.. 2012. 12. 4.
스마트폰 디바이스별 해상도 정리 (2025년 기준) 스마트폰 디바이스별 해상도 정리 (2025년 기준)예전에는 아이폰 3GS, 갤럭시 S 같은 기기별로 해상도를 하나씩 외워두고 개발하는 방식이 많았습니다. 하지만 2025년 현재는 기기 종류가 너무 다양해졌고, 화면 비율도 16:9에서 19:9, 20:9, 폴더블까지 크게 변화했습니다.이 글에서는 과거에 사용하던 해상도 리스트 대신, 현재 기준으로 실제 개발에 도움이 되는 주요 디바이스 / 대표 해상도 / 화면 비율 중심으로 정리해 보겠습니다.1. Apple iPhone 해상도 정리아이폰은 모델이 많지만, 화면 비율과 해상도가 비교적 규칙적입니다. 실제 개발에서는 포인트(pt) 단위와 Auto Layout / SwiftUI 등이 중요하지만, 해상도를 이해해두면 디자인 작업이나 디버깅 시 도움이 됩니다.1-.. 2012. 8. 22.
DOS 배치 파일을 쉘 스크립트로 변환하기 DOS 배치 파일을 쉘 스크립트로 변환하기많은 프로그래머들이 DOS가 설치된 PC에서 스크립트를 처음 접했습니다. 제약이 많았던 DOS 배치 파일 언어로도 나름 강력한 스크립트나 간단한 애플리케이션을 만들 수 있었지만, 상당한 꼼수와 우회 기술을 사용해야 했습니다.가끔 오래된 DOS 배치 파일을 UNIX 쉘 스크립트로 변환해야 하는 경우가 있으며, 이 작업은 보통 어렵지 않습니다. DOS 배치 파일에서 사용하는 연산자들은 대부분 쉘 스크립트의 일부 기능만 사용하고 있기 때문입니다.배치 파일과 쉘 스크립트의 연산자 비교Batch 파일Shell Script설명%$명령행 인수(prefix)/-명령 옵션\/디렉터리 경로 구분자===문자열 비교(같음)!==!!=문자열 비교(같지 않음)||파이프@set +v명령어 .. 2011. 10. 14.
안드로이드 MediaPlayer 최신 사용법 정리(2025 ver.) 안드로이드 MediaPlayer 이해하기MediaPlayer는 안드로이드에서 오디오와 동영상을 재생하기 위해 사용되는 기본 API입니다. 객체만 생성한 상태에서는 재생할 대상이 없으므로 반드시 미디어 데이터 소스를 전달해야 합니다. 2024~2025년 기준에서도 MediaPlayer는 여전히 사용되지만, ExoPlayer 같은 대안이 많이 사용되는 추세입니다. 그러나 간단한 오디오 재생 또는 짧은 효과음 재생에서는 MediaPlayer가 가장 간단한 선택입니다.1. MediaPlayer 객체 생성MediaPlayer player = new MediaPlayer();단순히 생성한 상태에서는 아무 작업도 할 수 없으며, 반드시 setDataSource()로 재생할 파일 또는 스트림을 전달해야 합니다.2. D.. 2011. 2. 17.
안드로이드 화면 회전 방지 방법 (최신 버전 기준) 안드로이드에서 화면 회전을 방지하는 방법안드로이드 앱 개발에서 화면 회전은 기본적으로 센서(중력 센서/가속도 센서)를 기준으로 자동 전환됩니다. 하지만 특정 화면을 고정하고 싶을 때는 명시적으로 방향을 지정해야 합니다. 가장 일반적인 방법은 AndroidManifest.xml 파일에서 Activity에 화면 방향을 설정하는 것입니다.1. 세로 고정(portrait)특정 Activity를 세로 화면으로 고정하려면 해당 Activity 선언에 다음 속성을 추가합니다.이렇게 설정하면 기기를 회전해도 화면이 변화하지 않고 세로 방향으로 고정됩니다.2. 가로 고정(landscape)가로 전용 화면이 필요한 경우 다음과 같이 설정합니다.게임 화면, 동영상 재생 화면처럼 가로가 자연스러운 UI에서 자주 사용됩니다.3.. 2011. 2. 16.
Tab Layout / TabHost / TabActivity Tab LayoutTo create a tabbed UI, you need to use a TabHost and a TabWidget. The TabHost must be the root node for the layout, which contains both the TabWidget for displaying the tabs and a FrameLayout for displaying the tab content.You can implement your tab content in one of two ways: use the tabs to swap Views within the same Activity, or use the tabs to change between entirely separate activ.. 2011. 1. 27.