Skip to content

jluispcardenas/SimpleChessAndroid

Repository files navigation

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

// 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

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