Skip to content

A single-screen Android app showcasing Lisa's Italian Restaurant with interactive contact features, built using Java and Material Design for Android Nanodegree project.

License

Notifications You must be signed in to change notification settings

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 ⭐!

Languages