Skip to content

[Android] 미국 메이저리그 경기 결과 서비스 입니다.

Notifications You must be signed in to change notification settings

jmp7911/Dailymlb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 

Repository files navigation

Dailymlb

  • 메이저리그(Major League Baseball) 경기결과, 팀 순위, 개인 순위를 확인할 수 있는 Android 앱 입니다. *데이터는 실제와 다를 수 있습니다.

기술 및 개발환경

외부 API

프로젝트 구조

  • MVP Paterrn, Singletone Paterrn
app
 ┣ src
 ┃ ┣ androidTest
 ┃ ┃ ┗ java
 ┃ ┃ ┃ ┗ com
 ┃ ┃ ┃ ┃ ┗ jmp
 ┃ ┃ ┃ ┃ ┃ ┗ dailymlb
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ ExampleInstrumentedTest.java
 ┃ ┣ main
 ┃ ┃ ┣ java
 ┃ ┃ ┃ ┗ com
 ┃ ┃ ┃ ┃ ┗ jmp
 ┃ ┃ ┃ ┃ ┃ ┗ dailymlb
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ iface
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ APIService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ OnClickResultListener.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ model
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Constants.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Game.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GameReviewWrapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GameStatus.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Inning.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Play.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PlayByPlay.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PlayerStat.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Retrofit2Client.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ ScoreBoard.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Stadium.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Standing.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Team.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ TeamStat.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ Teams.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ presenter
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GameReviewContract.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GameReviewPresenter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GamesContract.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GamesPresenter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ MainContract.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ MainPresenter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PlayerRankContract.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PlayerRankPresenter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ TeamRankContract.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ TeamRankPresenter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ view
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GameReviewActivity.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GameReviewInningAdapter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GameReviewStatisticsAdapter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GamesAdapter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GamesByDateFragment.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ MainActivity.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PlayerRankAdapter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PlayerRankFragment.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ TeamRankDivisionAdapter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ TeamRankFragment.java
 ┃ ┃ ┣ res
 ┃ ┃ ┃ ┣ drawable
 ┃ ┃ ┃ ┃ ┣ ari.png
 ┃ ┃ ┃ ┃ ┣ atl.png
 ┃ ┃ ┃ ┃ ┣ bal.png
 ┃ ┃ ┃ ┃ ┣ blank.png
 ┃ ┃ ┃ ┃ ┣ border.xml
 ┃ ┃ ┃ ┃ ┣ bos.png
 ┃ ┃ ┃ ┃ ┣ chc.png
 ┃ ┃ ┃ ┃ ┣ chw.png
 ┃ ┃ ┃ ┃ ┣ cin.png
 ┃ ┃ ┃ ┃ ┣ cle.png
 ┃ ┃ ┃ ┃ ┣ col.png
 ┃ ┃ ┃ ┃ ┣ det.png
 ┃ ┃ ┃ ┃ ┣ hide.png
 ┃ ┃ ┃ ┃ ┣ hou.png
 ┃ ┃ ┃ ┃ ┣ ic_launcher_background.xml
 ┃ ┃ ┃ ┃ ┣ kc.png
 ┃ ┃ ┃ ┃ ┣ laa.png
 ┃ ┃ ┃ ┃ ┣ lad.png
 ┃ ┃ ┃ ┃ ┣ mia.png
 ┃ ┃ ┃ ┃ ┣ mil.png
 ┃ ┃ ┃ ┃ ┣ min.png
 ┃ ┃ ┃ ┃ ┣ nym.png
 ┃ ┃ ┃ ┃ ┣ nyy.png
 ┃ ┃ ┃ ┃ ┣ oak.png
 ┃ ┃ ┃ ┃ ┣ phi.png
 ┃ ┃ ┃ ┃ ┣ pit.png
 ┃ ┃ ┃ ┃ ┣ review.png
 ┃ ┃ ┃ ┃ ┣ sd.png
 ┃ ┃ ┃ ┃ ┣ sea.png
 ┃ ┃ ┃ ┃ ┣ sf.png
 ┃ ┃ ┃ ┃ ┣ stl.png
 ┃ ┃ ┃ ┃ ┣ tb.png
 ┃ ┃ ┃ ┃ ┣ tex.png
 ┃ ┃ ┃ ┃ ┣ tor.png
 ┃ ┃ ┃ ┃ ┣ visible.png
 ┃ ┃ ┃ ┃ ┗ wsh.png
 ┃ ┃ ┃ ┣ drawable-v24
 ┃ ┃ ┃ ┃ ┗ ic_launcher_foreground.xml
 ┃ ┃ ┃ ┣ layout
 ┃ ┃ ┃ ┃ ┣ activity_game_review.xml
 ┃ ┃ ┃ ┃ ┣ activity_main.xml
 ┃ ┃ ┃ ┃ ┣ fragment_game_review.xml
 ┃ ┃ ┃ ┃ ┣ fragment_games_by_date.xml
 ┃ ┃ ┃ ┃ ┣ fragment_season_player_rank.xml
 ┃ ┃ ┃ ┃ ┣ fragment_team_season_rank.xml
 ┃ ┃ ┃ ┃ ┣ item_games.xml
 ┃ ┃ ┃ ┃ ┣ item_player_rank.xml
 ┃ ┃ ┃ ┃ ┣ item_review.xml
 ┃ ┃ ┃ ┃ ┗ item_team_rank.xml
 ┃ ┃ ┃ ┣ menu
 ┃ ┃ ┃ ┃ ┗ menu_bottom.xml
 ┃ ┃ ┃ ┣ mipmap-anydpi-v26
 ┃ ┃ ┃ ┃ ┣ ic_launcher.xml
 ┃ ┃ ┃ ┃ ┗ ic_launcher_round.xml
 ┃ ┃ ┃ ┣ mipmap-hdpi
 ┃ ┃ ┃ ┃ ┣ ic_launcher.png
 ┃ ┃ ┃ ┃ ┗ ic_launcher_round.png
 ┃ ┃ ┃ ┣ mipmap-mdpi
 ┃ ┃ ┃ ┃ ┣ ic_launcher.png
 ┃ ┃ ┃ ┃ ┗ ic_launcher_round.png
 ┃ ┃ ┃ ┣ mipmap-xhdpi
 ┃ ┃ ┃ ┃ ┣ ic_launcher.png
 ┃ ┃ ┃ ┃ ┗ ic_launcher_round.png
 ┃ ┃ ┃ ┣ mipmap-xxhdpi
 ┃ ┃ ┃ ┃ ┣ ic_launcher.png
 ┃ ┃ ┃ ┃ ┗ ic_launcher_round.png
 ┃ ┃ ┃ ┣ mipmap-xxxhdpi
 ┃ ┃ ┃ ┃ ┣ ic_launcher.png
 ┃ ┃ ┃ ┃ ┗ ic_launcher_round.png
 ┃ ┃ ┃ ┗ values
 ┃ ┃ ┃ ┃ ┣ colors.xml
 ┃ ┃ ┃ ┃ ┣ strings.xml
 ┃ ┃ ┃ ┃ ┗ styles.xml
 ┃ ┃ ┗ AndroidManifest.xml
 ┃ ┗ test
 ┃ ┃ ┗ java
 ┃ ┃ ┃ ┗ com
 ┃ ┃ ┃ ┃ ┗ jmp
 ┃ ┃ ┃ ┃ ┃ ┗ dailymlb
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ ExampleUnitTest.java
 ┣ .gitignore
 ┣ build.gradle
 ┗ proguard-rules.pro

라이브러리

  • Retrofit2: HTTP Method Client
  • Gson: Rest API 데이터를 Json Object 로 변환

화면설계

Home & 경기상세기록 팀 순위 개인 순위
list-detail standings personal-rank

회고

  • MVP Pattern 다운로드

    • Model, View 는 의존성이 없어 유지보수에 장점이 있습니다. View는 Model을 가지지 않으며 Presenter를 통해서 데이터가 전달 됩니다.
    • 다만 View, Presenter 의 의존성은 어플리케이션이 복잡해 질 수록 의존성이 강해집니다.
  • Singletone Pattern

    • 전역으로 사용하는 객체의 생성자는 오직 1개의 객체만 생성하고 참조해야 합니다.

    • Java 에서는 클래스 내에 static 으로 자신을 참조하고,

      생성자는 private로 다른 곳에서의 생성을 못하도록 하여 getInstance()메소드를 통해서만 참조하도록 구현합니다.

  • RecyclerView

    • Android View 이며 많은 데이터를 List에 넣을 수 있습니다.

    • ListView는 스크롤이 될 때 객체를 생성하고 삭제하기를 반복하는 반면,

      RecyclerView는 객체를 삭제하지 않고 재사용하여 성능이 더 좋습니다.

    • Presenter의 역할을 하는 Adapter를 구현해야 합니다.

    • Model의 역할을 하는 ViewHolder를 구현해야 합니다.

About

[Android] 미국 메이저리그 경기 결과 서비스 입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages