{"id":20162625,"url":"https://github.com/codeamt/sandwich-app","last_synced_at":"2026-04-30T02:38:15.441Z","repository":{"id":201923670,"uuid":"131641085","full_name":"codeamt/Sandwich-App","owner":"codeamt","description":"First course project for Phase 2 of #GrowWithGoogle and Udacity's Nanodegree Program for Android Development","archived":false,"fork":false,"pushed_at":"2018-09-28T04:49:08.000Z","size":231,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T14:19:28.246Z","etag":null,"topics":["android-development","grow-with-google","java","udacity-android-nanodegree"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codeamt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-04-30T20:04:59.000Z","updated_at":"2018-09-28T04:49:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"2066d9ea-cd1f-4b0a-a0ce-7d1f5c5a2563","html_url":"https://github.com/codeamt/Sandwich-App","commit_stats":null,"previous_names":["codeamt/sandwich-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeamt%2FSandwich-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeamt%2FSandwich-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeamt%2FSandwich-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeamt%2FSandwich-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeamt","download_url":"https://codeload.github.com/codeamt/Sandwich-App/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241600484,"owners_count":19988713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-development","grow-with-google","java","udacity-android-nanodegree"],"created_at":"2024-11-14T00:26:03.978Z","updated_at":"2026-04-30T02:38:10.393Z","avatar_url":"https://github.com/codeamt.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003ca href=\"https://sites.google.com/udacity.com/gwgdevscholarship/home\"\u003e#GrowWithGoogle\u003c/a\u003e Android Development Project: \u003cbr\u003eSandwich App\u003c/h1\u003e\n\nTo kick off Phase 2 of the Grow With Google Developer Scholarship Program and conjointly Udacity's Nanodegree Program for Android Development, students were asked to complete a mobile app (written in Java) that holds details about famous sandwiches from around the world. \n\nHere's my go at it:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://ucarecdn.com/a9806071-c380-4c52-aa0d-26777c5658ac/\"\u003e\n\u003c/p\u003e\n\n## Udacity's Learning Objectives  \n- [x] Practicing JSON parsing to a model object \n- [x] Design an activity layout\n- [x] Populate all fields in the layout accordingly \n\n\n## Core Functionality:  \n\n\n#### Data Parsing \nThe primary goal for completing this project was to parse sandwich details from a string array (located in the string values resource file) and: \n\n- make a JSON copy of each sandwich that maps sandwich details to object keys, then \n- serializes this JSON to a Java object in accordance with an existing Sandwich model \n\nInstead of using a 3rd party library to realize this goal, we implemented this functionality from scratch by defining a globally accessible method in JSONUtils that converts sandwich strings to JSON objects like a factory. \n\n(A great learning experience!) \n\n\n#### Data Binding \n\nThe user journey for this app goes as follows: \n\n- Click on a sandwich name\n- See details page for more info about that particular sandwich. \n\n\nWith this in mind, the second goal of this project was to bind Sandwich data to the child views of their relative Detail Activity UIs.\n\nTo achieve this, the JSON conversion method is called from inside a click listener. When a sandwich name is clicked, the Detail View's fragments are inflated and populated.  \n\nSome of the keys on these sandwhich objects hold arrays of items (e.g., ingredients or alternative names). A helper method concats and formats these list items, as needed, before binding them to their UIs.\n\n\n#### Responsive Layout  \nThe third goal for this project was to build out a sensible layout for the Details Activity UI. I implemented a tabbed layout and nested Scroll Views within these tabs to make details viewable on smaller devices. \n\nAttending to landscape mode, I made a horizontal layout that put feature image and details side-by-side. \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://ucarecdn.com/0e40db9b-271a-457f-8935-21462c99f2eb/\" \u003e\n\u003c/p\u003e\n\nI hope to get better at Front End work after completing the upcoming course on Material Design. \n\n## Versioning and Dependencies \n\n**Target SDK Version:** 26\n\n**Dependencies:**\n- com.android.support.constraint:constraint-layout:1.0.2\n- com.android.support:appcompat-v7:26.1.0\n- com.android.support:design:26.1.0\n- com.squareup.picasso:picasso:2.5.2\n\n**Android Studio Version:** 3.1.2 (Stable Release)\n\n**Gradle Version:** 3.0.1\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeamt%2Fsandwich-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeamt%2Fsandwich-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeamt%2Fsandwich-app/lists"}