An open API service indexing awesome lists of open source software.

https://github.com/jluispcardenas/simplechessandroid

Source of the app SimpleChess
https://github.com/jluispcardenas/simplechessandroid

android chess chess-game firebase java material-design opensource pubnub

Last synced: about 2 months ago
JSON representation

Source of the app SimpleChess

Awesome Lists containing this project

README

          

# SimpleChess Android

A comprehensive native Android chess application that provides both single-player and multiplayer chess experiences with real-time communication capabilities.

## Overview

SimpleChess is a fully-featured chess application built for Android devices, offering a complete chess gaming experience with modern social features. The application combines traditional chess gameplay with contemporary mobile app features including user authentication, real-time multiplayer functionality, and social interaction capabilities.

## Features

### Core Gameplay
- **Single Player Mode**: Challenge an intelligent AI opponent with customizable difficulty
- **Multiplayer Mode**: Play real-time chess games with friends and other players online
- **Complete Chess Implementation**: Full chess rules including castling, en passant, and pawn promotion

### Social Features
- **User Authentication**: Secure login system powered by Firebase Authentication
- **Real-time Chat**: Communicate with opponents during gameplay
- **Ranking System**: Track your progress and compete with other players
- **Themed Chat Channels**: Game of Thrones-inspired chat channels for community interaction

### Technical Features
- **Real-time Synchronization**: Instant move updates using PubNub messaging
- **Responsive Design**: Optimized for various screen sizes and orientations
- **Sound Effects**: Immersive audio feedback for game events
- **Offline Capability**: Play against AI without internet connection

## Architecture

The application follows a modular Android architecture with clear separation of concerns:

- **Activities**: Main game screens and navigation
- **Custom Views**: Specialized chess board rendering and interaction
- **Services**: Background real-time communication and notifications
- **Models**: Chess game logic and data structures
- **Utilities**: Helper classes for board evaluation, scoring, and audio management

## Technology Stack

### Core Technologies
- **Language**: Java
- **Platform**: Android (API Level 24+)
- **Architecture**: Android Activities and Services pattern

### Backend Services
- **Firebase Authentication**: User management and authentication
- **Firebase Realtime Database**: User data and game state persistence
- **Firebase Cloud Messaging**: Push notifications
- **PubNub**: Real-time messaging and game synchronization

### Key Dependencies
```gradle
// Core Android Libraries
com.android.support:appcompat-v7:24.0.0
com.android.support:design:24.0.0
com.android.support:multidex:1.0.1

// Firebase Services
com.google.firebase:firebase-database:9.0.0
com.google.firebase:firebase-auth:9.0.0
com.google.firebase:firebase-messaging:9.0.0

// Real-time Communication
com.pubnub:pubnub-android:3.7.10

// Google Play Services
com.google.android.gms:play-services-auth:9.0.0
com.google.android.gms:play-services:9.0.0

// Image Loading
com.squareup.picasso:picasso:2.5.2

// Testing
junit:junit:4.12
```

## Installation

### From Google Play Store
The application is available on the Google Play Store:
https://play.google.com/store/apps/details?id=jcardenas.com.chess&hl=en

### Development Setup
1. Clone the repository
2. Open the project in Android Studio
3. Configure Firebase project and add `google-services.json`
4. Set up PubNub credentials in the project configuration
5. Build and run the application

## Screenshots

![Application Screenshot](/ss.webp)

## Development

### Project Structure
```
main/java/jcardenas/com/chess/
├── activities/ # Main application screens
├── adapters/ # RecyclerView adapters
├── callbacks/ # Interface definitions
├── ia/ # AI implementation
├── models/ # Data models
├── services/ # Background services
├── utils/ # Utility classes
└── views/ # Custom views
```

### Testing
- Unit tests located in `test/java/jcardenas/com/chess/`
- Instrumentation tests in `androidTest/java/jcardenas/com/chess/`

## Contributing

This project is open source and welcomes contributions. Please ensure code follows the existing patterns and includes appropriate tests.

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Contact

**Jose Luis Cardenas**
- Email: jluispcardenas@gmail.com
- LinkedIn: [jose-luis-cardenas-54366983](https://www.linkedin.com/in/jose-luis-cardenas-54366983)
- LeetCode: [user6694X](https://leetcode.com/user6694X/)