GithubHelp home page GithubHelp logo

mozilla / webmaker-android Goto Github PK

View Code? Open in Web Editor NEW
166.0 166.0 113.0 20.63 MB

Webmaker for Android

Home Page: https://play.google.com/store/apps/details?id=org.mozilla.webmaker

License: Mozilla Public License 2.0

JavaScript 2.26% Java 97.74%

webmaker-android's People

Contributors

adamlofting avatar alanmoo avatar alicoding avatar byebyebyezzz avatar cadecairos avatar droxxr avatar errietta avatar flukeout avatar gesa avatar gvn avatar humphd avatar hzahoori avatar jbuck avatar jd-wasem avatar jlaverty avatar jordantheriault avatar k88hudson avatar louisstow avatar okevin0 avatar pippinlee avatar pomax avatar rdaoud1 avatar ryandang avatar ryanwarsaw avatar secretrobotron avatar thisandagain avatar timmh avatar toolness avatar whyqqqqq avatar xmatthewx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webmaker-android's Issues

View - Apps

Implementation of initial apps view as per mockups:
https://redpen.io/p/fg6854135873dfca94

Because the publishing flow will not be implemented until a future SOW, the only section that is relevant for this milestone is, "Apps I've Installed".

Type - Color Picker Definition

Need to define how user will choose colors.

Bricks applied to:
• Text (changing text color)
• Header (changing header color)

Minimum Requirement:
• Ability to select from pre-defined palette of colors

Build - Autogenerate appcache manifest

Proposal (Please Comment)

Background

We need a basic CLI tool that will create an appcache manifest for a given directory. The tool should walk the directory tree to form a complete manifest and then generate a checksum comment to force expire existing caches.

Basic Use

[sudo] npm install -g appcachify
appcachify ./my/build/dir
CACHE MANIFEST
# Checksum 68e2b731ac1486dff1a2c583eb7c4780

index.html
index.js

./icons/activity.svg
./icons/apps.svg
./icons/discover.svg
./icons/me.svg

./styles/common.css
./styles/normalize.css

NETWORK:
*
http://*
https://*

Options

--fallback [string] Specify fallback asset(s)
--network [string] Specify network location(s)
--hidden Includes hidden files (like .DS_Store, .gitignore, etc.)

Notifications - Document PN Touch Points

Document the places in which push notifications will be used throughout the app and how they relate to the core user experience as both an author (productive) and user (consumptive).

Need a small server to help with routing

We're using js routing, push state, etc., which means we can't refresh a page, or go directly to urls like http://localhost:8080/apps. Let's build a tiny node app to point (properly MIME'd) requests at index.html.

Ecosystem - Move "Makes" Into App

Makes created within the application should be installed local to the app and only optionly added to the home-screen. This requires quite a few design changes, but ultimately simplifies quite a bit of the technical implementation as well as makes the process of porting to Android / iOS much more straightforward.

Apps - Empty State

Need to design a simple empty state for the "Apps" section that guides users towards "Discover" if they have not installed or made any apps yet.

Example - Data Collection

Design example application to be used for Data Collection. Possible personas: teacher, aid worker.

Profile - Hello World design of profile

Design a simple profile screen

MUP (Minimum Useful Product) Requirements for the Hello World prototype (Due: Friday, August 8th)
• Ability to view name
• Ability to view location
• Ability to add/edit name
• Ability to add/edit location

Requirements for profile page beyond Hello World:
• Ability to view profile image
• Ability to add/edit profile image (profile image could be auto-generated avatar)
• List of apps the user has created
• Option to add occupation/short bio

FFOS - Hosted vs Packaged App

We are leaning towards hosted, but are there any "gotchas" that could necessitate a packaged / privileged application. Possibilities: push notifications, device access, etc.

Privileged loader architecture

The architecture suggested by @andreasgal (as transcribed by me) is to make a thin, hardened packaged app, with minimal UI apart from maybe a splash screen, whose job is to load the last-downloaded version of the app assets and start the app, and start async worker threads to fetch any newer version of the app. Minimally, the app will then update on next start-after-kill, assuming the new version of the app has been completely downloaded. In the future, the app could offer "A new version of the app is available, want to reload?" .

The advantages from this approach are:

a) we can update the content, UI, etc. just by pushing a new version of those assets to a (versioned) URL, out of sync with the update/release schedule of the packaged app.

b) the packaged app + initial version of the hosted-bits can be reviewed whenever the operator or whoever needs to decide whether to pre-install the app, and fixes etc. can happen after that.

c) this is a generic mechanism which many other apps could benefit from.

d) if we want to allow for a no-network-hit initial use, the build script can pre-load the indexeddb DB with the version of the hosted apps available at build time.

The primary reason for having the pre-installed app be privileged is so that if we need the app to be whitelisted or have elevated privileges (e.g. for FxA auth), that can happen at that layer of app origin.

@thisandagain and I were talking about a wrapper around XHR that was designed to deal with network challenges (connections dropping, low bandwidth, etc). This would be useful here.

Other notes:

  • Downloaded assets should be stored in IndexedDB, along w/ any state representing the state of the upgrade.
  • Once version N+1 has been downloaded, version N-1 should be removed from the local storage.

As agal pointed out, the code in this shim isn't huge, but it has to be solid. We should spec it out soon.

Example - Blog

Design example application to be used for the sharing of content (Blog). Possible personas: citizen journalist, community organizer.

Make - Redesign Navigation for "Play / Edit / Data" Paradigm

Redesign of navigation to accommodate bricks that make use of persistent storage such as forms and messaging. This includes:

  • In-app navigation for non-owners (signed-in)
  • In-app navigation for non-owners (not signed-in)
  • In-app navigation for owners

View - Templates

Implementation of initial discover view as per mockups:
https://redpen.io/p/fg6854135873dfca94

This first "hello world" implementation of the discover view will be based on static placeholder personas that are embedded into the application itself (as to work offline).

Example - Commerce

Design example application to be used for commerce. Possible personas: vendors, couriers, VARs.

Example - Community of Interest

Design example application to be used for interest-driven communities (forums / BB). Possible personas: community organizer, youth.

Clarify relationship of makes to browsing, URLs, etc.

When a link is shared w/ someone, it will be an https:// URL -- to what? What happens when the recipient clicks on that link in the following scenarios:

  • recipient has a FirefoxOS phone with the appmaker app installed
  • recipient has an Android phone w/ the appmaker app installed
  • recipient has a FFOS/android phone w/o the app installed
  • recipient is on iOS
  • recipient is on a desktop computer

This is particularly important to get right given that the sharing messages are the 'viral' vector for the app.

Brick - Header Definition

Need to design the header brick and how it will be editable.

Minimum Requirements for "Hello World":
• Ability to edit name of app (Header name = app name)
• Ability to change color of the header

Other Requirements:
• Ability to change color of app name text in header
• Ability to change font of app name text in header
• Ability to change background color of entire app

View - Player

View that loads an application JSON blob and renders it using bricks that are local to the application

Bricks for this first SOW:
#22
#23

Publish - Redesign Flow

Explore a design for the publishing flow that is non-linear and centered around the customization of pre-populated (derived and randomized) choices. For example, generate an icon, name, and location (?) for the user and allow them to change it vs. forcing them to embark on a long linear flow. This should help reduce friction while also providing a meaningful context for the information that we are requesting.

(cc @mhanratty @xmatthewx @iamjessklein)

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.