Source Code 게시글
안드로이드 앱에서 구글 앱스토어로 이동하는 기능을 구현해요. 1. 구글 앱스토어.자동 업데이트가 되지 않은 경우에 앱스토어로 이동하는 기능을 사용해요. 필수 업데이트를 적용하려고 한다면 핵심 기능이 되겠쩌.developer.android.com - Google Play에 연결 try { startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName")))} catch (e: ActivityNotFoundException) { startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("..
css로 웹페이지에 탭 너비를 원하는 길이로 지정해보아요. 1. 탭 너비.웹에서 \t (U+0009) 문자 크기는 기본값이 공백너비 8개인데, 너무길다 이러면 css 설정을 변경하면 되겠쩌.tab-size:8tab-size:4 developer.mozilla.org - tab-size 🐾 이미지 보기
php에서 파일 검색 경로를 재설정 하는 것도 지원해요. 1. include path 살펴보기.php는 ini 설정파일에서 include_path 값으로 현재 검색할 경로를 전역설정으로 가지고 있고, 스크립트가 작동하는 중에는 set_include_path 함수를 실행하여 변경된 경로를 반영해요. 문서를 살펴보면 include 경로 밖에도 fopen, file, radfile, file_get_contents 함수들이 이 규칙을 따른다고 되어있어요.php.net - include-path 2. 함수 살펴보기.get_include_path 함수는 현재 지정된 검색 경로를 가져오고, set_include_pat..
안드로이드에서 처리하지 않은 예외가 발생하면 콕백 함수가 실행되어요. 1. 함수 살펴보기.setDefaultUncaughtExceptionHandler 정적 함수이고, 콜백 함수를 등록해두면 처리하지 않은 예외에 대해서 가상머신이 이 함수를 실행시켜요.Thread.setDefaultUncaughtExceptionHandler { thread, exception -> exitProcess(0)} developer.android.com - Thread.UncaughtExceptionHandler 🐾 이미지 보기
최대 줄바꿈 수를 제한하면 긴 문장을 표현하기 좋아져요. 1. css 살펴보기.행간이 되는 글자 높이를 line-height 값으로 고정하고, 행간에 배수가 max-height em값으로 주어지면 줄바꿈이 생기는 길이를 알 수 있어요. 스크롤이 생기는 영역은 overflow:hidden을 주어 숨기면 되겠쩌.p{max-height:5.6em;line-height:1.4;overflow:hidden;text-overflow:elipsis}12345 developer.mozilla.org - line-height 🐾 이미지 보기
미디어쿼리로 모바일 브라우저에 특별한 스타일을 적용해요. 1. css 살펴보기.모바일 브라우저는 포인터가 없고, 터치스크린에 기반이면 조건에 맞아서 적용되어요. 모바일 기기에 마우스를 연결하고 사용하는 경우도 있어서 주의하여야 하겠쩌.@media (pointer:none),(pointer:coarse) { body{font-size:1em}} developer.mozilla.org - @media/pointer 🐾 이미지 보기
안드로이드 앱이 불안정해지면 종료하고 재시작 해보아요. 1. 함수 살펴보기.알람 서비스에 시간차이를 등록하여 재빨리 어플을 종료하고 다시 켜는 방식이어요. 만일 찰나의 시간 100ms 이하에 시간을 주면 어플 종료가 늦게 되거나 처리 가지연되는 경우에 재시작은 실패하겠쩌.fun restartApplication() { val mStartActivity = Intent(this, MainActivity::class.java) val mPendingIntentId = 1 val mPendingIntent = PendingIntent.getActivity(this, mPendingIntentId, mStartAc..
안드로이드에서 화면에 전원을 차단하여 배터리 전력 소비를 아껴요. 1. 함수 살펴보기.scrcpy 프로젝트에서 스크린을 켜지 않고 안드로이드 디바이스를 물리적으로 제어하는 기능이 있어요. 파워모드 플래그를 POWER_MODE_OFF로 설정하여서 전원을 차단해요.시스템 내부 함수이므로 프로덕션 상태에서 작동하지 않거나 제약이 생기겠쩌.android.view.SurfaceControl.setDisplayPowerMode github.com/Genymobile/scrcpy - SurfaceControl.java setDisplayPowerModeandroid.googlesource.com - SurfaceCont..
안드로이드에서 액티비티를 종료하지 않고 홈 화면으로 이동해요. 1. 함수 살펴보기.ACTION_MAIN 인텐트에 CATEGORY_HOME 카테고리를 등록하고, FLAG_ACTIVITY_SINGLE_TOP 플래그를 지정했어요. 일반적으로 FLAG_ACTIVITY_NEW_TASK 플래그를 지정하지만 원래 의미는 백그라운드에 대기중인 태스크를 가져오는 것이어서 바꿨어요. 시스템에서 적절히 처리할 것이어서 어느 플래그를 사용한다 하더라도 문제되지 않아요.mobeTaskToBack(true) 명령어를 주어도 현재 액티비티를 종료하지 않지만 이전 태스크로 나가요. 어플을 닫으려고 한다면 finish() 함수를 사용하지..
안드로이드에서 뒤로가기 액션을 핸들링하여 다른 동작을 재정의하는 코틀린 코드입니다. 1. 함수 살펴보기.onBackPressedDispatcher 요청 분배기에 addCallback 함수로 OnBackPressedCallback 콜백 핸들러 객체를 등록해요. handleOnBackPressed 함수에서 뒤로가기 버튼의 상호작용을 알아내요.예시코드에서 뒤로가기 기본 동작을 moveTaskToBack 함수를 사용하여서 백그라운드 태스크로 전환하였쩌.onBackPressedDispatcher.addCallback(this, object: OnBackPressedCallback(true) { override fun..
안드로이드에서 화면에 나타난 소프트 키보드를 숨겨요. 1. 함수 살펴보기.getSystemService 함수에서 InputMethodManager 서비스를 가져와서 hideSoftInputFromWindow 메서드 함수를 실행해요. view.windowToken는 윈도우 토큰으로 IBinder 타입을 반환받아서 인자로 넘겨요.IBinder는 잠재적으로 null 값을 가지는 상태를 고려하여야 좋겠쩌.fun hideSoftInput(view: View) { val inputMethodManager = this.getSystemService(Activity.INPUT_METHOD_SERVICE) as Input..
php에서 ISO 8601 표준규격으로 날짜와 시각을 출력해요. 1. 함수 살펴보기.date함수에 문자열 인자로 Y-m-d H:i:s를 주어서 ISO 8601 표준규격으로 날짜와 시각을 출력했어요. 현재 시각으로 출력하지 않으려면 두번쨰 인자값으로 유닉스 타입값을 넣어요. 946684800 값을 사용하면 2000-01-01 00:00:00 이 되겠쩌. Y: 연도를 4자리로 표시합니다. (예시: 2000)m: 월을 2자리로 표시합니다. (예시: 01-12)d: 날짜를 2자리로 표시합니다. (예시: 01-31)H: 24시간제 시간(00-23)을 표시합니다.i: 분(00-59)을 표시합니다.s: 초(00-59)를..
charp 프로그램에서 바이트 용량을 단위로 환산해줘요. 1. 함수 살펴보기.이 함수는 size 인자 값을 받아서 1024의 거듭제곱으로 나누어 더 큰 단위로 변환해요. 단위 목록은 B, KB, MB, GB, TB, PB, EB, ZB, YB 이고, 변환할 단위의 인덱스 계산은 Math.Log(size, 1024) 식에서 나와요.자바스크립트에서는 로그함수에 두번째 인자를 지원하지 않으므로 Math.log(size) / Math.log(1024) 계산식을 사용하는 차이가 있어요.Javascript 용량 단위를 반환하는 함수 public class FileInfo { public static string[] ..
php 프로덕션 모드에서 런타임 오류가 출력되지 않아요. 1. 함수 살펴보기.set_ini 함수는 세팅을 일시적으로 변경하고, error_reporting 함수는 런타임 오류를 모두 출력하는 상태로 바꿔요.php 스크립트 가장 윗쪽 라인에 적용하거나 오류를 출력할 지점에 넣어주면 좋겠쩌. php.net - error_reportingphp.net - set_ini 🐾 이미지 보기
자바스크립트에서 바이트 용량을 단위로 환산해줘요. 1. 함수 살펴보기.이 함수는 bytes 인자 값을 받아서 1024의 거듭제곱으로 나누어 더 큰 단위로 변환해요. 단위 목록은 bytes, KB, MB, GB, TB 인데 FB .. 더 추가 할 수 있고, 변환할 단위의 인덱스 계산은 Math.floor(Math.log(bytes) / Math.log(1024)) 식에서 나와요. function convertFileSize(bytes){ var u=["bytes","KB","MB","GB","TB"] var i=Math.floor(Math.log(bytes)/Math.log(1024)) return (byt..
sqlite에서 문자열을 분리하는 쿼리는 다양하지만 WITH RECURSIVE 방법이 적절해요. 1. 핵심로직 살펴보기.분리하려고 하는 문자열 마지막에 구분문자를 추가하여 모든 문자을 분리해요. 이렇게 하면 쿼리 결과를 다시 나누지 않으므로 간편해져요.WITH RECURSIVE split(pos,val,text) AS ( SELECT 0, '', '11,222,3333,last' || ',' text UNION ALL SELECT instr(text, ','), substr(text, 1, instr(text, ',')-1), substr(text, instr(text, ',')+1) FROM spl..