android 10 대비하여 scopedStorage 구현 https://github.com/choidongkyu/ScopedStorage https://black-jin0427.tistory.com/242 카메라 예제와 함께 보는 Scoped Storage (안드로이드 Q 대응) 안녕하세요. 블랙진입니다. 카메라 예제와 함께 보는 Scoped Storage 포스팅 중 드디어 마지막인 안드로이드 Q 대응하기 입니다! 권한 가져오기 저장소의 종류 black-jin0427.tistory.com Android 2021.08.26
안드로이드 UI 공부 참고 참고자료 메모 https://github.com/material-components/material-components-android-examples GitHub - material-components/material-components-android-examples: Companion example apps and code for MDC-Android. Companion example apps and code for MDC-Android. Contribute to material-components/material-components-android-examples development by creating an account on GitHub. github.com https://github.com/mj.. Android/Android UI 2021.08.26
1이 될때까지 최소 연산 횟수 n과 k 라는 자연수가 주어진다고 하면 아래 두가지 연산 중 하나씩 진행하여 n이 1이 되도록 하는데 연산 횟수를 최소화 하는 알고리즘을 작성하라. 1. n 에서 1을 빼기 2. n 에서 k를 나누기 이런 문제가 있다고 하자. 이 문제는 그리디 알고리즘의 유명한 문제다. 해설을 보기전 나의 경우는 n = 25 k = 5 count = 0 while 1 : if n%k ==0: n=n/k count+=1 else : count+=1 n= n-1 if n==1 : break print(count) 이런 식으로 풀었다. 이 방법도 틀린 방법은 아니지만 주어지는 숫자의 범위가 커지면 문제가 생길 수 있다. 그래서 사용하는 테크닉이 해설 코드에 있었다. n = 17 k = 4 count = 0 while 1 : .. 알고리즘 2021.08.21
Drawable Shape 코드로 색상 동적 변경 Drawable Shape를 배경 등.. 으로 사용할때 색상을 동적으로 변경하는 방법 입니다. TextView의 배경을 둥글게 하기 위해서 shape로 배경을 깔아주고 배경 색상은 아래와 같이 지정 해줍니다. GradientDrawable bgShape = (GradientDrawable) textView.getBackground(); bgShape.setColor(getResources().getColor(R.color.colorPrimary)); 코틀린에서는 var bgShape : GradientDrawable = get_auth_text_bt.background as GradientDrawable bgShape.setColor(resources.getColor(black)) 이렇게 사용합니다. Android 2021.07.31
안드로이드 Dialog 만들기 (kotiln) 앱을 만들다보면 DIalog를 만들때다 종종 있다. 그럴때 어떻게 해야하는지 코드로 알아보자. 아래는 실제 Dialog 코드다. class MyDialog(context: Context, layoutId: Int) : Dialog(context) { var detector: GestureDetector? = null // 다이얼로그가 나와있을때 손가락 제스쳐에 따른 행동을 구현하기 위함 protected var mContext: Context private val iv: ImageView private val text: String companion object { private const val SWIPE_MIN_DISTANCE = 120 // 제스쳐에 사용될 상수 private const val SW.. Android 2021.07.30
Nest.js 시작하기 Java 로 백엔드를 만들어본 사람이라면 spring나 spring-boot 의 존재에 대해서 많이들 알거라고 생각한다. node.js 에도 express 라는 멋진것이 존재하지만 spring-boot 만큼의 편리함은 사실 없다고 느꼈다. 백엔드를 주로 하는것도 아니니까 그냥 그렇게만 생각하고 있던 찰나 우연하게 nest.js 라는것을 알게 됐고 눈에 들어온 문구가 있었다. "Java에 spring 이 있다면 node.js 에는 nest.js가 있다." 예전에 spring 으로 앱 서버를 만들어봤지만 확실히 spring 은 이것저것 설정해줄거나 건드려줄게 많았는데 보다 간편한 node에 그런 프레임워크가 있다니? 라는 생각으로 찾아보며 공부해봤다. 생각했던거 이상으로 spring 을 사용해본 사람이라면 .. BackEnd/Nest.js,Node.js 2021.07.18
오랜만의 블로그 간만에 블로그 글을 쓴다. 한때는 1일 1포스팅을 꿈꿨지만 쉽지는 않은거 같다 ㅋㅋ.. 개인 개발은 꾸준히 하고 있다. 이번에도 어김없이 MVVM + RXjava 를 중점으로 개발하고 있다. MVVM은 이제 거의 익숙해진거 같다. RX는 최근에 좀 제대로 이해하기 시작했는데 솔직히 기능이 너무 많아서 이걸 다 적용할 일이 있을까? 싶긴하다. 물론 몇몇 기능은 매우 유용한듯? 아마 다음 포스팅은 새로한 프로젝트에 대해 간단하게 연재하는 글이 될거 같다. 잡담 2021.07.10
팝업 프래그먼트 만들기 PopupFragmentDialog.java //다이얼로그 파일 public class PopupFragmentDialog extends DialogFragment implements View.OnClickListener { private ImageView page1; private ImageView page2; private Button popup_close_btn; //content to show in the fragments public static final String TAG = "popup_fragment_dialog"; public PopupFragmentDialog(){ } @Override public void onCreate(Bundle savedInstanceState) { super.. Android 2021.06.24
플러터 - 토스트 메세지 만들기 import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'test', theme: ThemeData(primarySwatch: Colors.blue), home: Mypage(), ); } } class Mypage extends StatelessWidget { @override Widget build(BuildContext context) { re.. Flutter 2021.06.20
플러터 - 스낵바 만들기 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'test', theme: ThemeData(primarySwatch: Colors.blue), home: Mypage(), ); } } class Mypage extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { ret.. Flutter 2021.06.20