본문 바로가기
[android] 국제화 text style 입히기 - Eng : Best practices for text on Android Es : Texto en Android: mejores prácticas 여기서 Text, Texto 에만 bold 처리를 하고 싶다면? - 간단한 styling 은 HTML tag 를 이용하자. Text 와 Texto 를 각각 tag 로 감싸고, setText(Html.fromHtml(…)) API 호출을 해주자. - HTML tag 로 해결하기 어려운 복잡한 케이스는 annotation 을 이용하자. strings.xml 에 태그를 사용하면 된다. custom key, value pair 를 xml 에 정의하고, annotation tag 를 사용할 수 있다. string resource 를 SpannedString 로 얻어.. 2021. 1. 27.
[android] finishAffinity() 와 finishAndRemoveTask() 에 대하여 with 실험 FinishAndRemoveTask - API Level 16 (Android 4.1, JB) 에 추가된 API 호출하는 Activity 기준 본인 포함 현재 task 의 '하단'에 있는 모든 Activity 를 종료시켜준다. - Activity Call Stack : A -> B -> C C에서 finishAffinity() 를 호출하면 A, B, C 가 모두 destroy 된다. - Activity Call Stack : A -> B -> C B 에서 handler 를 통해 delay 를 주면서 finishAffinity() 호출하면 A, B 가 destroy 되고 C 는 destroy 되지 않고 살아있는다. 호출하는 Activity 기준 '하단' 만 종료됨에 유의하자. - 참고자료 : https:/.. 2021. 1. 27.
[android] context 마스터 하기! - Context 는 Android API 중 가장 잘못 design 된 녀석이다. Android 에서 신과 같은 object 이다.. - Android 는 component 들을 갖고 있다. Activity, Service, BroadcastReceiver, ContentProvider. Android OS 자체도 component 들을 가지고 있다. WifiManager, Vibrator, PackageManager 등등.. 그리고 Resource 라는 녀석도 있다. Context 를 간단히 이야기하면 component 간의 다리 역할을 하는 component 이다. context 를 통해 component 간의 communication, instantiate, access 등을 할 수 있다. - C.. 2021. 1. 26.
[애자일] Scrum 개발방법론 - 애자일 소프트웨어 공학 중 하나. - 원칙 개발 주기마다 적용할 기능이나 개선에 대한 목록 작성 (Backlog 작성) 신규 기능, 기존 로직 개선점 ( 즉 할일 ) 등에 우선 순위 부여 개발 주기는 30일 정도로 조절하고, 개발 주기마다 실제 동작하는 결과 제공 일일 15분 정도의 회의 항상 팀 단위로 사고 원할한 의사소통 - 추가 사항 조직을 작게 만들며, 자기조직적인 팀(스스로 지원해서 조직되는 팀)이면 더 좋음. 개발 사항은 1~2시간 단위로 가능한 작은 단위로 만드는 것이 좋음. Sprint 결과를 리포트, 회고 함. - Scrum 팀 구성원의 추구 가치 확약 : 약속한 것은 확실히 실현한다. 전념 : 확약한 것에 전념. 정직 : 불리한 것도 숨기지 않는다. 존중 : 다른 사람에게 경의를 표.. 2021. 1. 24.
[android] ViewModel & LiveData 의 pattern & anti-pattern Views and ViewModels Distributing responsibilities -이상적으로 ViewModel 은 Android 에 대한 어떤 것도 알아서는 안 된다.이는 testability 를 늘려주고, 더 안전하며, module 화하기 편해진다.이를 가장 쉽게 확인할 수 있는 방법은 android.arch.* 외에는 android.* import 가 없어야 한다. -조건문, loop, 동작 결정 등은 Activity, Fragment 가 아닌 ViewModel 이나 다른 layer 에서 수행해야한다.View 는 어떻게 data 를 display 할지만 신경쓰고, user event 를 ViewModel 이나 Presenter 로 전달하는 역할만 해야 한다.이것이 Passive View p.. 2021. 1. 22.
[android] ViewModel 에 대해 알아보자 -ViewModel 은 activity 나 fragment 에서 사용되는 data 를 준비하고 관리하는 역할을 하는 클래스이다.이 녀석은 activity 와 fragment 를 비롯한 앱 전반과의 통신을 관리한다. -ViewModel 은 항상 fragment 나 activity 와 같은 scope 안에서 생성된다.그리고 scope 이 살아있는 동안 계속 유지된다.이 말은 Configutation change 로 인해 destory 되더라도, ViewModel 은 destroy 되지 않는다.새로운 owner instance (재생성된 Activity)는 존재하는(기존 Activity 에 의해 생성된) ViewModel 에 재연결된다. -ViewModel 의 목적은 Activity 나 Fragment 에서 .. 2021. 1. 21.
[android] LiveData 에 대해 알아볼까 -LiveData 는 주어진 lifecycle 에 의해 observed 될 수 있는 data holder 이다.이 말은 LifecycleOwner 와 함께 하는 Observer 라고 보면 된다. 그리고 이 observer 는 감싸고 있는 data 의 변경을 LifecycleOwener 의 상태가 active 상태일 때만 알려준다. -LifecycleOwner 는 LifeCycle.State.STARTED 나 LifeCycle.State.RESUMED 일 때만 active 상태이다.observeForever(Observer) 를 통해 observer 가 추가되면 이 observer 는 항상 active 상태로 여겨지며, 따라서 변경에 대해 항상 notify 를 받을 수 있다.이 경우에는 수동으로 remov.. 2021. 1. 20.
Open Source Software License 들 간단 정리 GPL ( General Public License ) 많은 Open Source 가 채택하고 있는 라이센스. 자유로운 사용, 복제, 배포 및 수정 저작권 표시, 보증책임이 없다는 표시, GPL 명시 소프트웨어 수정 및 링크(static, dynamic 모두) 시 모든 코드를 GPL 에 의해 공개 공개 범위는 GPL 코드와 연결된 모든 코드 특허 보복조항 ( 특허를 구현한 프로그램을 GPL 로 배포할 때는 GPL 조건을 준수하는 이용자에게는 로열티를 받을 수 없으며, 제 3자의 특허인 경우에도 특허권자아가 Royalty-Free 형태의 라이센스를 제공해야만 해당 특허 기술을 구현한 프로그램을 GPL 로 배포하는 것이 가능 ) GPL 코드 일부라도 사용하게 되면 그 프로그램은 GPL 이 된다. GPL 을 .. 2020. 12. 25.
[UX] 로그인 영역이 왼쪽에서 오른쪽으로 이동한 이유는 뭘까? -아주아주 예전부터 웹을 사용해온 사람들은 '다음' 이 국내 1등 포탈일 때를 기억할 것이다.그 때에는 다음을 포함해서 대부분의 로그인 영역이 왼쪽에 위치해 있었다.그러나 요즘은 다음은 포함해서 대부분의 사이트가 오른쪽 영역에서 또는 팝업 형태(센터에서)로 로그인을 지원한다. -내 기억 상, 로그인 영역을 오른쪽으로 바꾼 큰 사이트는 '네이버'였다.그리고 이를 따라하듯 많은 사이트들이 로그인 영역을 왼쪽에서 오른쪽으로 옮기기 시작했다. -일각에서는 네이버가 Defacto Standard (비표준이지만 표준처럼 씀) 의 느낌이기 때문에,UX/UI 디자이너들이 큰 생각없이 “그들이 바꿨으니 좋은 것이겠지” 라며 바꾼 경향도 많다고 한다. -과학적인 측면에서는, 효율적인 광고를 고려해서 측면으로 옮겼다고 해석.. 2020. 12. 24.
반응형