본문 바로가기

전체

(71)
[ Android ] 소프트스퀘어드를 마치며 소프트스퀘어드( softsquared ) 는 외주연계 프로그래밍 교육과정을 진행하는 곳이다. 아는 지인을 통해 알게돼서 신청을 하게되었다. 내가 선택한 분야는 안드로이드였다. 눈에 띄는 혜택이 2개가 있었는데, 하나는 바로 알 수 있듯이 '외주연계' 를 통해 돈을 벌 수 있다는 것이었다. 그리고 또 하나는 '메이커스(MAKE US)' 라는 앱런칭 동아리 서류 면접 통과이다. 앱을 배우고 싶고 제대로 해보고 싶다는 마음이 컸지만 이런 혜택에 솔깃한 것도 사실이다. 그래서 나는 망설임없이 해보기로 했다. 내돈주고 처음 학원(?)을 다녀봤다. 사실 나는 직장인이다. 심지어 분야는 웹이다. 딱히 내가 웹을 하고 싶어서 하게 됐다기 보다는 어쩌다보니 웹팀으로 들어오게 되어 하고 있다고 보는 게 맞겠다. 어떻게 보..
[ Android ] android java.lang.NoSuchMethodError: com.intellij.ide.plugins.PluginManagerCore.loadDescriptors() android studio 를 최신 4.1 버전으로 업데이트 하기 위해서 앱을 삭제하고 설치한 후에 앱을 실행하는데 다음과 같은 에러가 발생했다. 해결법을 찾아보니 간단하였다. C:\Users\{user}\.AndroidStudio4.0\config\plugins 경로로 이동해서 plugins 안에 있는 것을 삭제해주면 된다. 다시 실행하면 정상적으로 실행되는 것을 볼 수 있다.
[ Android ] RecyclerView 와 ListView 차이 | ViewHolder 패턴 의무화 ListView는 뷰홀더 패턴을 권장했지만, 강제성은 없다. 반면, RecyclerView는 무조건 뷰홀더 패턴을 사용해야한다. 그래서 ListView와 달리 RecyclerView는 다음과 같은 메서드를 Adapter에서 사용한다. onCreateViewHolder(ViewGroup parent,int viewType) onBindViewHolder(ListItemViewHolder holder,int position) | onCreateViewHolder 뷰 홀더를 생성하고 뷰를 붙여주는 부분. 처음에 화면에 보이는 뷰에 대해 뷰 홀더가 생성되며, 이후 스크롤 시 보여지는 뷰들은 재활용되는 뷰이므로 다시 호출되지 않는다. | onBindViewHolder 화면에 뷰..
[ Android ] 안드로이드 생명주기 (Life Cycle) 앱을 만들 때 생명주기를 적절하게 사용하는 것은 매우 중요하다. 앱이 멈추거나, 불가피하게 종료가 되거나, 다시 시작되거나 하는 등의 상황에 대해서 적절하게 처리할 수 있기 때문이다. 액티비티의 대표적인 상태 정보는 다음과 같다. 상태 설명 실행(Running) 화면상에 액티비티가 보이면서 실행되어 있는 상태. 액티비티 스택의 최상위에 있으며 포커스를 가지고 있음 일시 정지(Paused) 사용자에게 보이지만 다른 액티비티가 위에 있어 포커스를 받지 못하는 상태. 대화상자가 위에 있어 일부가 가려진 경우 해당함 중지(Stopped) 다른 액티비티에 의해 완전히 가려져 보이지 않는 상태. 이렇게 액티비티의 상태 정보가 변화하는 것을 액티비티의 생명주기(Life Cycle) 또는 수명주기라고 하며, 액티비티의..
[ Android ] Manifest 매니패스트 안드로이드 프로젝트를 만들 때 기본적으로 생성되는 파일 중 하나가 매니패스트 파일이다. 매니패스트는 앱이 실행되기 위한 일종의 룰, 규칙 같은 것을 설정하는 파일이라고 생각하면 된다. | 개요 매니패스트 파일에는 다음과 같은 정보를 선언해야 한다. 1. 앱의 패키지 이름 2. 앱의 구성 요소(모든 액티비티, 서비스, Broadcast Receiver, 콘텐츠 제공자 포함) 3. 앱이 시스템 또는 다른 앱의 보호된 부분에 액세스하기 위해 필요한 권한 4. 앱에 필요한 하드웨어 및 소프트웨어 기능 | 선언 안드로이드 프로젝트를 처음 생성했을 때 매니패스트 파일에는 다음과 같이 선언되어 있다. 첫 번째 줄은 해당 파일은 xml 파일이고, 인코딩 방식은 utf-8임을 나타낸다. 다음으로 는 애플리케이션의 전반적..
[ flyway ] flyway 개념 및 실습 | 개념 데이터베이스 마이그레이션 툴이다. 이는 소스코드를 형상관리하는 Git, SVN 등과 같은 맥락이다. 간단하게 말하자면 데이터베이스 스키마의 버전을 관리하기 위한 방법이라고 할 수 있다. sql 파일을 생성하여, 특정 명령어를 통해 관리한다. | 설치 리눅스 환경에서 다룰 것이기 때문에 아래의 링크에서 tar 파일을 다운로드 해서 압축을 풀어준다. Flyway by Redgate • Database Migrations Made Easy. Migrate directly from within your application Flyway flyway = Flyway.configure().dataSource(url, user, password).load(); flyway.migrate(); Get Star..
[ Android ] 다이얼로그 띄우기 다이얼로그는 알림 대화상자를 말한다. 사용자에게 확인을 받거나 선택하게 할 때 사용한다. 주로, 메세지를 전달하는 역할을 하며 예/아니오와 같은 응답을 처리한다. | 다이얼로그 띄우기 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("알림"); builder.setMessage("종료하시겠습니까?"); builder.setIcon(android.R.drawable.ic_dialog_alert); build.setPositiveButton("예", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) ..
[ Android ] 사용자가 원하는 디자인으로 토스트 만들기 토스트는 간단한 메세지를 잠깐 보여주었다가 없어지는 뷰로 앱 위에 뜨는 뷰다. 이는 사용자에게 필요한 정보를 알려주는 역할을 하는 위젯이다. 특히, 앱이 사라지게 되더라고 필요한 메세지가 그대로 표시되므로 앱의 상태와 관계없이 보여줄 수 있다는 장점이 있지만 반대로 토스트가 여러 개가 연속으로 뜨면 사용자에게 불편함을 줄 수도 있다. | 기본 토스트 메세지 Toast.makeText(Context context, String message, int duration).show(); 기본적으로는 간단하게 위와 같이 사용하면 된다. 만약, 사용자가 원하는 디자인으로 토스트를 띄우고 싶으면 다음과 같이 하면된다. | 사용자 토스트 메세지 LayoutInflater inflater = getLayoutInflat..

반응형