Skip to content

sandesha21/single-screen-app_google_android_development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Single Screen Restaurant Android App

Android Java Android Studio Material Design

License Project Status Build Gradle Target SDK

Android Nanodegree - Project: Build a Single Screen App

A single-screen Android app showcasing Lisa's Italian Restaurant, featuring authentic Italian cuisine in Dublin, CA.


🏷️ Keywords & Topics

Primary Keywords: Android Development β€’ Mobile App β€’ Restaurant App β€’ Single Screen Design β€’ User Interface
Technical Stack: Java β€’ Android Studio β€’ XML Layouts β€’ Material Design β€’ ScrollView β€’ Intent Actions β€’ AndroidX Libraries
Business Focus: Restaurant Branding β€’ Customer Engagement β€’ Contact Integration β€’ Local Business β€’ Food Service
Industry: Food & Beverage β€’ Restaurant Technology β€’ Mobile Applications β€’ Local Business β€’ Hospitality
Project Type: Mobile Application Development | Industry: Restaurant & Food Service | Focus: Customer Experience & Business Showcase


πŸ“ File Structure

β”œβ”€β”€ app/src/main/
β”‚   β”œβ”€β”€ java/com/example/lisasitalianrestaurant/
β”‚   β”‚   └── MainActivity.java              # Main activity - handles UI and system insets
β”‚   β”œβ”€β”€ res/
β”‚   β”‚   β”œβ”€β”€ drawable/                      # Images and icons
β”‚   β”‚   β”œβ”€β”€ layout/                        # UI layouts (activity_main.xml)
β”‚   β”‚   └── values/                        # Colors, strings, styles, dimensions
β”‚   └── AndroidManifest.xml
β”œβ”€β”€ app/src/test/java/com/example/lisasitalianrestaurant/
β”‚   └── MainActivityTest.java              # Unit tests for MainActivity
β”œβ”€β”€ app/src/androidTest/java/com/example/lisasitalianrestaurant/
β”‚   └── MainActivityInstrumentedTest.java  # UI instrumented tests
β”œβ”€β”€ gradle/                                # Gradle wrapper
β”œβ”€β”€ screenshots/                           # App screenshots
β”œβ”€β”€ build.gradle                           # Project build config
β”œβ”€β”€ settings.gradle
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
└── LICENSE                                # License information

🎯 Project Overview

This is an upgraded version of the original single-screen Android application, enhanced with modern Android development practices and updated dependencies. The app showcases "Lisa's Italian Restaurant" with improved UI/UX and follows current Android development standards.

Key Improvements in This Version:

  • Updated to Android SDK 36 (Android 15) with minimum SDK 28
  • Java 17 toolchain for better performance and modern language features
  • Latest AndroidX libraries including Material Design Components 1.13.0
  • Enhanced ScrollView layout for better content organization
  • Improved resource management with proper color schemes and dimensions
  • Better accessibility support with comprehensive content descriptions
  • Modern Gradle build system (8.5.2) with optimized configurations

The application serves as a digital business card, providing customers with easy access to important information while demonstrating modern Android development concepts such as:

  • Responsive ScrollView layout design
  • Intent handling for phone calls, emails, and maps
  • Resource management and string externalization
  • Material Design 3 components and theming
  • Modern build configurations and dependency management
  • Accessibility-first design principles

Note: This project demonstrates both fundamental and modern Android development practices, suitable for learning current industry standards.


πŸš€ Getting Started

Prerequisites

  • Android Studio (Flamingo or later recommended)
  • Java Development Kit (JDK) 17 or higher
  • Android SDK with API level 28+ (Android 9.0)
  • Gradle 8.5+ (included with Android Studio)

Installation & Setup

  1. Clone the repository

    git clone https://github.com/sandesha21/single-screen-app_google_android_development.git
    cd single-screen-app_google_android_development
  2. Open in Android Studio

    • Launch Android Studio
    • Select "Open an existing project"
    • Navigate to the cloned directory and select it
  3. Build the project

    • Android Studio will automatically sync Gradle dependencies
    • Wait for the build to complete
  4. Run the app

    • Connect an Android device or start an emulator
    • Click the "Run" button or press Shift + F10

Project Structure

The project follows standard Android architecture with clean separation of concerns and proper resource organization.


App Features

Business Information:

  • Restaurant name and branding
  • Multiple Italian food images
  • Complete contact information
  • Business description and hours

Interactive Elements:

  • Clickable phone number for direct calling
  • Tappable email address for quick contact
  • Interactive address for map navigation
  • Website link for online presence

Technical Implementation:

  • Responsive ScrollView layout with RelativeLayout
  • Material Design 3 theming with custom Italian color palette
  • Modern AndroidX libraries and components
  • Accessibility support with comprehensive content descriptions
  • Externalized string resources for internationalization support
  • Optimized for Android 9.0+ with target SDK 36
  • Java 17 toolchain for enhanced performance

Business Details (sample)

Lisa's Italian Restaurant is a local establishment located in Dublin, CA, offering authentic Italian cuisine with a focus on family dining and special occasions.

  • Name: Lisa's Italian Restaurant
  • Location: 104 Grafton St, Dublin, CA 94568
  • Phone: 510-111-1111
  • Email: info@lisasRestaurant.com
  • Website: www.lisasrestaurant.com
  • Hours: Everyday from 11AM-10PM
  • Specialty: Authentic Italian food with party reservations

πŸ“± Screenshots

Lisa's Italian Restaurant Android App Screenshot

Main screen showcasing restaurant information and interactive elements


πŸ› οΈ Technical Specifications

  • Minimum SDK: 28 (Android 9.0)
  • Target SDK: 36 (Android 15)
  • Compile SDK: 36
  • Java Version: 17
  • Gradle Version: 8.5.2
  • Build Tools: Android Gradle Plugin 8.5.2

Key Dependencies:

  • AndroidX AppCompat 1.7.1
  • Material Design Components 1.13.0
  • ConstraintLayout 2.2.1
  • AndroidX Preference 1.2.1
  • AndroidX Core 1.15.0
  • JUnit 4.13.2 (Unit Testing)
  • AndroidX Test Runner 1.7.0 (Instrumented Testing)
  • Espresso 3.7.0 (UI Testing)

πŸ§ͺ Testing

This project includes unit and instrumented tests for quality assurance.

Running Tests

Unit Tests (run locally on your machine):

./gradlew testDebugUnitTest

Instrumented Tests (run on Android emulator or device):

./gradlew connectedAndroidTest

Test Coverage

  • MainActivityTest: Verifies MainActivity class structure and inheritance
  • MainActivityInstrumentedTest: Tests UI elements and layout rendering

βœ… Business name and branding
βœ… Multiple high-quality business photos
βœ… Complete contact information (phone, email, website)
βœ… Compelling business description
βœ… Hours of operation
βœ… Modern Android development practices
βœ… Accessibility compliance
βœ… Material Design 3 implementation
βœ… Responsive layout design


οΏ½ Upgrade from Original Version

This project is an enhanced version of the original single-screen app with significant improvements:

What's New:

  • Modern Android SDK: Upgraded from API 21+ to API 28+ (minimum) and API 36 (target)
  • Java 17: Updated from Java 8 for better performance and modern language features
  • Latest Dependencies: All AndroidX libraries updated to latest stable versions
  • Enhanced UI: Improved layout with better resource organization and color schemes
  • Better Accessibility: Comprehensive content descriptions and accessibility support
  • Modern Build System: Updated Gradle and build tools for faster builds
  • Improved Resource Management: Better organized colors, dimensions, and string resources

Migration Benefits:

  • Future-proof codebase compatible with latest Android versions
  • Better performance and security with modern dependencies
  • Enhanced user experience with Material Design 3 components
  • Improved maintainability and code organization

πŸ‘¨β€πŸ’» Author

Sandesh S. Badwaik

  • Google Android Nanodegree Graduate
  • Mobile App Developer
  • Applied Data Scientist & Machine Learning Engineer
  • Passionate about creating intuitive user experiences

LinkedIn GitHub


🌟 If you found this project helpful, please give it a ⭐!

Contributors

Languages