반응형

전체 글 81

[안드로이드] WebView uri scheme 마켓 이동

uri 스킴에서 마켓 이동 uri 스킴(Scheme)에서 앱이 없을때 마켓으로 앱을 이동 하는 방법 Intent intent = null; try { intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); //IntentURI처리 Uri uri = Uri.parse(intent.getDataString()); context.startActivity(new Intent(Intent.ACTION_VIEW, uri)); //해당되는 Activity 실행 scheam = true; } catch (URISyntaxException ex) { L.e("URISyntaxException : " + ex.getMessage()); } catch (ActivityNotFo..

안드로이드 2022.12.06

[디자인패턴] 옵저버(Observer) 패턴

옵저버 패턴의 정의 - 객체의 상태변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다.[1] - 다시, 유튜브의 구독 알람을 예시로 옵저버 패턴을 이해 볼수 있다.[2] 옵저버 패턴의 구조 옵저버 패턴의 구현 Type A * Subject 행위자 public interface Subject { public void registerObserver(Observer observer); public void unregisterObserver(Observer observer); public void..

개발방법론 2022.11.21

[디자인패턴] 싱글톤(Singleton) 패턴

싱글톤 패턴 이란? - 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최조의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱클톤 패턴 이라고 한다.[1] 싱글톤 패턴의 클래스 다이어그램 싱글톤 패턴의 구현(JAVA) public class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} //생성자 사용이 불가능하도록 한다.!! public static Singleton getInstance() { return INSTANCE; } } 참고자료: [1] 위키피디아 싱글톤 패턴, https://ko.wikipedia.org/..

개발방법론 2022.11.17

[IT용어]네이티브앱 vs 크로스 플랫폼 앱

네이티브 앱 네이티브 앱이란 안드로이드(Android), 삼성 갤럭시와 애플 아이폰과 같이 스마트폰 운영체제(OS)에 맞는 프로그래밍 언어를 사용하여 개발하는 앱입니다. [1] 크로스 플랫폼 앱 크로스 플랫폼 앱은 네이티브 앱이 OS 간 호환이 불가능하다는 한계점을 개선하고자 등장하였습니다. 이름에서 유추할 수 있듯이, 크로스 플랫폼 앱은 하나의 개발 언어로 안드로이드와 iOS에서 사용할 수 있는 앱을 만들 수 있습니다. 대표적인 개발 도구는 크게 3가지입니다: 1) 구글에서 개발한 플러터(Flutter), 2) 페이스북이 개발한 리액트 네이티브(React Native), 3) 마이크로소프트에서 개발한 자마린(Xamarin). 크로스 플랫폼 앱은 이러한 개발도구 중 하나를 활용하여 코드를 작성하면 각 O..

IT 2022.11.07

[IT용어]네이티브 앱, 모바일 웹, 웹앱, 하이브리드(hybrid) 앱

* 네이티브 앱: 네이티브 앱은 모바일 플랫폼에서 제공되는 개발언어로 작성된 앱으로서, 하드웨어 자원을 이용하기에 편리하지만 스마트 폰 플랫폼에 종속적이다. 따라서 하나의 앱을 개발할 때, 서로 다른 플랫폼에서비스하기 위해서, 각각 다른 언어로 개발해야 하고, 그 만큼 비용이 늘어나는 단점이 있다.[1] * 모바일 웹: 모바일에 최적화된 웹사이트[2]로 스마트폰의 하드웨어 자원을 사용할수 없다[2] * 모바일 웹앱(웹 앱): 웹 앱은 브라우저상에서 작동하는 HTML, Javascript, CSS를 이용해 작성된 앱으로서, 스마트폰에서 지원하는 브라우저에서 사용할 수 있기 때문에, 플랫폼별로 개발을 할 필요가 없다. 그러나 스마트 폰의 하드웨어 자원을 사용할 수 없는 단점이 있다.[1] 최근에는 HTML5..

IT 2022.11.01

[토이 프로젝트] ADB, APK 앱배포 프로그램

AdbManagerGUI 안드로이드 디바이스에 앱을 설치해 주는 어플리케이션 구현. 프로젝트의 목적: 안드로이드 디바이스를 제어하는 도구를 GUI로 구현 윈도우 향 프로그램을 개발하며, C# 및 Java의 언어를 이용하여 구현한다. 프로젝트의 범위: android tools에서 필요한 adb, aapt의 기능을 이용하여 윈도우 화면으로 확인한다. 진행 단계: 개발 환경 구축. (완료) C#, Java, Android 프로젝트 디렉토리 생성. (완료) C#을 이용한 adb 설치, command code 전송 Gui 데모 (완료) Java Gui를 이용한 adb 제어 기능 데모 (준비) android tools의 aapt 제어 기능 데모 (준비) 결과물 C#을 이용한 단말기 제어 shell 접근 제어 기능(..

[안드로이드] shortcut의 구현

목적: 안드로이드의 쑛컷을 구현한다. 앱을 롱클릭했을때 바로가기가 보인다. %shortcut.xml은 난독화에서 제외 시킬것. 구현방법: AndroidManifest.xml res/xml/shortcuts.xml //인자 전달 MainActivity.java Intent intent = getIntent(); String extra_key = intent.getStringExtra("extra_key"); MyLog.i(TAG,"extra_key: "+extra_key); 참고자료: [1] 바로가기 만들기, https://developer.android.com/guide/topics/ui/shortcuts/creating-shortcuts?hl=ko [2] 기능스미카, https://developer.a..

안드로이드 2022.08.31

[안드로이드] 앱 알림설정 on off 활성 비활성화 차단 방법

앱 알림 설정이 on/off 확인 코드 NotificationManagerCompat.from(context).areNotificationsEnabled(); 앱 알림 설정 bordcastReceiver class BlockStateChangedReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val blockedState = intent.getBooleanExtra(NotificationManager.EXTRA_BLOCKED_STATE, false) when (intent.action) { NotificationManager.ACTION_APP_BLOCK_STATE_CHANGED -> { ..

안드로이드 2022.04.26

[안드로이드] 앱(패키지) 설치 유무 확인

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."배경: 다른 앱관에 상호작용을 할때 해당 앱이 설치되어 있는지 확인이 필요한 경우가 있다. 코드: public static boolean isAppInstalled(Activity activity, String strAppPackage) {// PackageManager pm = activity.getPackageManager();// PackageInfo pi;//// Intent i = pm.getLaunchIntentForPackage(strAppPackage);// if(i==null){// return false;// }e..

안드로이드 2022.04.15

[android] 위치 정보 서비스 GPS/Network LocationTracker (Kotlin)

위치 정보 서비스를 얻어 오도록 구현. 구현방법 - AndroidManifest.xml - LocationTracker.kt import android.Manifest import android.app.Activity import android.content.Context import android.content.pm.PackageManager import android.location.Location import android.location.LocationListener import android.location.LocationManager import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatAc..

안드로이드 2021.11.25

[Android] EdtitText 필터 적용, 이모지 및 특수문자 입력 차단

한글 영어 숫자 만 입력되게 EditText 필터 적용 ( 특수기호 및 이모지입력 차단) etInput.setFilters(arrayOf( InputFilter { src, start, end, dst, dstart, dend -> //val ps = Pattern.compile("^[a-zA-Z0-9ㄱ-ㅎ가-흐]+$") //영문 숫자 한글 //영문 숫자 한글 천지인 middle dot[ᆞ] val ps = Pattern.compile("^[a-zA-Z0-9ㄱ-ㅎ가-흐ㄱ-ㅣ가-힣ᆢᆞ\\u318d\\u119E\\u11A2\\u2022\\u2025a\\u00B7\\uFE55\\s?!]+$") if (!ps.matcher(src).matches()) { return@InputFilter "" } else{ r..

안드로이드 2021.11.23

[Android] data Binding + liveData 적용 주의 ui not updated

주의점: 라이프 사이클 소유자가 설정해야합니다 있습니다 binding로 binding.setLifecycleOwner(this). MainViewModel에 대해서도 설정해야 합니다 binding. 그렇지 않으면 UI가 제대로 작동하지 않습니다. 확실하지 않은 경우 항상 여기에서 공식 문서를 확인하십시오. public class MainFragment extends Fragment { private MainViewModel mainViewModel; private FragmentMainBinding binding; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup containe..

안드로이드 2021.11.11

[Android] startActivityForResult deprecated kotlin

1. 배경 startActivityForeResult가 deprecated 되었다. override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) 의 복잡도가 높아진다는 이유로.. 2. 해결방안. 활동에서 결과 가져오기[2] 제일 아래 하단을 보면, 쉽게 알수 있다. - 자바 ActivityResultLauncher mStartForResult = registerForActivityResult(new StartActivityForResult(), new ActivityResultCallback() { @Override public void onActivityResult(ActivityResult result) { if (re..

안드로이드 2021.11.10

[Android] DPI 별 기준 해상도.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."0)기준 해상도 잡는 방법.디자이너와 협업시엔 xxxhdpi(640dpi,4px,1440 x 2560) 으로 협업하여, 고해상도의 이미지를 사용한다.(안드로이드에서 자동으로 해상도 제일 높은 xxxhdpi를 참고하여 단말기에 맞게 스케일링되어 사용된다.) 1) 해상도별 기준 사이즈- drawable-mhdpi (160dpi, 1px) - img_goog.png (이미지는 360 x 640 기준으로 제작된 이미지 이여야함)- drawable-hdpi (240dpi, 1.5px) - img_goog.png (이미지는 540 x 960 기준으로 제작된 이미지 이여야함)- drawable-xhdpi (3..

안드로이드 2021.10.18
반응형