개발

[앱 개발 리뷰] 안드로이드 로또 앱 만들기 과정/소개 #1<오늘은 로또왕>

changha. 2021. 2. 24. 23:33

나만의 앱을 만들고 싶어서 고민을 하다 

유입성도 좋고 1인 개발로 하기 쉬운 

로또 앱을 선택했다.

 

플레이 스토어에서 로또 앱들 구경을 해보니 퀄리티 높은 앱들이 많았다.

그래서 디자인쪽으로 컨셉을 잘 잡자라고 생각 하여 

귀엽고 깔끔한 인터페이스를 중점으로 만드려고 했다!!

 

앱 아이콘 / 파스텔 톤이 좋을 거 같아서 요렇게 컨셉을 잡았다 

 


폰트는 딱 몽글몽글한게 좋을 거 같았다 

아래 bottomNavigationView로 화면 전환을 할 수 있도록 하였다.

 

그리고 화면 전환 부분은 Activity로 각 개별 화면을 만드는 것이 아니라 

Fragment로 Activity위에 띄우는 식으로 했다.

 

listView 보단 recyclerView를 이용하는게 좋다길래 (책에서) 

더 복잡하지만 해당 방식으로 했다.

 

기존 다른 로또 앱들 보면 리스트에 아무 항목도 없을 때 

텍스트 뷰를 띄우길래 어떻게 해야될까 고민 했는데 

구글링 해보니까 너무 복잡한 거 같아 

약간 꼼수로 생성한 데이터를 저장한 ArrayList에 아무 항목도 없을 때

textView.setVisibility(list.size() > 0 ? textView.GONE : textView.VISIBLE);

코드를 적용하니 쉽게 해결 됐다 

참고하면 좋을 듯!! 


번호 추가 했을 때

 

FloatingButton으로 메서드를 구현했는데 

버튼을 눌렀을 때 

FloatingActionButton fab = rootView.findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                TreeSet<Integer> set = new TreeSet<>();
                while(set.size() < 6){
                    int random = new Random().nextInt(45); // 랜덤 번호 생성 코드 
                    set.add(random); // 리스트에 추가하는 코드 
                }
                ArrayList Aset = new ArrayList(set); // treeSet => arrayList로 변환 


		// 생성 번호에 맞는 해당 로또 공 이미지 가져오기 
                int tmpId1 = getResources().getIdentifier(
                        "lotto" + ((Integer)Aset.get(0) + 1), "drawable", getActivity().getPackageName());
                int tmpId2 = getResources().getIdentifier(
                        "lotto" + ((Integer)Aset.get(1) + 1), "drawable", getActivity().getPackageName());
                int tmpId3 = getResources().getIdentifier(
                        "lotto" + ((Integer)Aset.get(2) + 1), "drawable", getActivity().getPackageName());
                int tmpId4 = getResources().getIdentifier(
                        "lotto" + ((Integer)Aset.get(3) + 1), "drawable", getActivity().getPackageName());
                int tmpId5 = getResources().getIdentifier(
                        "lotto" + ((Integer)Aset.get(4) + 1), "drawable", getActivity().getPackageName());
                int tmpId6 = getResources().getIdentifier(
                        "lotto" + ((Integer)Aset.get(5) + 1), "drawable", getActivity().getPackageName());
                Ball setBall =  new Ball(tmpId1, tmpId2, tmpId3, tmpId4, tmpId5, tmpId6);

                list.add(setBall);
                
                //빈화면 아닐 때
                textView.setVisibility(list.size() > 0 ? textView.GONE : textView.VISIBLE);

                dataAdapter.notifyDataSetChanged();
                recyclerView.setAdapter(dataAdapter);
            }
        });

위와 같이 작성했다.

 


 

글이 길어질 거 같아서 

 

다음 페이지에서 이어서 작성하겠다! 

 

오늘 2월 24일 플레이 스토어에 등록 했으니

 

검토 기간 길게 잡아 일주일 정도 후에 앱이 출시 될 거 같다 ㅎㅎ