A well-built Android app of the classic 2048 game.
![](https://private-user-images.githubusercontent.com/23309033/273544454-f9a70457-ab75-4957-9e0b-de0844a52b9a.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxNjc1MDgsIm5iZiI6MTcyMjE2NzIwOCwicGF0aCI6Ii8yMzMwOTAzMy8yNzM1NDQ0NTQtZjlhNzA0NTctYWI3NS00OTU3LTllMGItZGUwODQ0YTUyYjlhLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI4VDExNDY0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA5MmMwNjYzNGE2OWIzNjc5NjBjYTZmZjIzNGEwZDgyMDgxYWMxMjc2ODU0MDg1MjNjNGQ2MDJmMmRkZmUwYzgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.mGPNWE7Zba7HATvhPLhFWXEB8M6K1pE7fED_tHAQiyQ)
- Basic functionality
- Complete functionality and local persistence
├── adapter
│ └── GridAdapter.kt
├── data
│ ├── model
│ │ ├── Board.kt
│ │ ├── Cell.kt
│ │ ├── Game.kt
│ │ ├── Move.kt
│ │ ├── SavedGame.kt
│ │ └── SavedGameSerializer.kt
│ └── repository
│ └── GameRepository.kt
├── di
│ └── AppModule.kt
├── MainActivity.kt
├── MyApp.kt
├── util
│ └── Util.kt
├── view
│ ├── fragment
│ │ ├── GameFragment.kt
│ │ └── WinningFragment.kt
│ └── listener
│ └── OnSwipeTouchListener.kt
└── viewmodel
└── GameViewModel.kt
- Hilt (Dependency Injection)
- Proto Datastore (Typesafe local persistence)
Pull requests are welcome.
- Please make sure to follow the development style.
- For major changes, please open an issue first, and discuss, what you would like to change.