Coder Social home page Coder Social logo

platform_design's Introduction

Platform Design

Instead of transliterating widgets one by one between Cupertino and Material, Android and iOS apps often follow different information architecture patterns that require some design decisions.

This sample project shows a Flutter app that maximizes application code reuse while adhering to different design patterns on Android and iOS. On Android, it uses Material's lateral navigation based on a drawer and on iOS, it adheres to Apple Human Interface Guideline's flat navigation by using a bottom tab bar.

Visually, the app presents platform-agnostic content surrounded by platform-specific 'chrome'.

Preview

App's platform toggling preview

See https://youtu.be/svhbbFZg1IA for a longer non-gif format.

Features

Home

Defines the top level navigation structure of the app and shows the contents of the songs tab on launch.

Android

  • Uses the drawer paradigm on the root page.

iOS

  • Uses bottom tab bars with parallel navigation stacks.

Songs feed tab

Shows platform-agnostic cards that is tappable and that performs a hero transition on top of the platform native page transitions.

Both platforms also show a button in their app/nav bar to toggle the platform.

Android

  • Android uses a static pull-to-refresh pattern with an additional refresh button in the app bar.
  • The song details page must be popped in order to change tabs on Android.

iOS

  • The iOS songs tab uses a scrollable iOS 11 large title style navigation bar.
  • iOS uses an overscrolling pull-to-refresh pattern.
  • On iOS, parallel tabs are always accessible and the songs tab's navigation stack is preserved when changing tabs.

News Tab

Shows platform-agnostic news boxes.

Android

  • The news tab always appears on top of the songs tab when summoned from the drawer.

iOS

  • The news tab appears instead of the songs tab on iOS when switching tabs from the tab bar.

Profile Tab

Shows a number of user preferences.

Android

  • The profile tab appears on top of the songs tab on Android.
  • Has tappable preference cards which shows a multiple-choice dialog on Android.
  • The log out button shows a 2 button dialog on Android.

iOS

  • The profile tab appears instead of the songs tab on iOS.
  • Has tappable preference cards which shows a picker on iOS.
  • The log out button shows a 3 choice action sheet on iOS.

Settings Tab

Shows a number of app settings via Material switches which auto adapt to the platform.

Android

  • The settings is directly available in the drawer on Android since a Material Design drawer can fit many tabs.

iOS

  • The settings is accessible from a button inside the profile tab's nav bar on iOS. This is a common pattern since there are conventionally more items in the drawer than there are tabs.
  • On iOS, the settings page is shown as a full screen dialog instead of a tab in the tab scaffold.

##这里是加入了github的我的文件

platform_design's People

Contributors

jack-spark avatar 1483199227 avatar

Watchers

 avatar

Forkers

1483199227

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.