Code Monkey home page Code Monkey logo

viento's Introduction

viento

Viento or "Wind": Off-Grid and Constrained Computing Optimization Effort

viento's People

Contributors

cstiens avatar n8fr8 avatar tiffrobo avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

viento's Issues

nailing down the F-Droid direction

So I've been a bit MIA on this, too many things hit me at once in the past few months. I've been working non-linearly on this, now I want to nail down the plan for the rest of the time.

Based on various discussions, it seems that the various offline use cases are the most interesting to focus on, like the Cuban app store. Here's my sketch of the work points so far:

smooth out swap
• harmonize user experience with Viento projects and Android Go
• automate as much of the process as possible
• work with SD cards
• index El Paquete for rapid access

offline malware tools
• many devices are out of date, don't get updates
• scan for exploits when adding to collections
• increase visibility by making F-Droid Nearby app for Google Play

conserve
• only load graphics/screenshots on wifi or sneakernet, not on metered connections
• battery conservation through Android schedule tricks
• pre-crunch/optimize all images that are added to F-Droid app repositories

How does this sound?
@cstiens @n8fr8

Smart Profiler Overview

SMART PROFILER (DRAFT)

INTRODUCTION

The Smart Profiler is a pattern created as part of the Viento project. It's goal is to tune apps to the needs of individuals living in various parts of Latin America whom are often using cheap Android phones with limited data plans.

SMART PROFILER OBJECTIVES

To smartly conserve battery, network and storage to create lighter, less consuming apps.
To make apps more efficient and personalized in their behavior.

PREMISE: ONE SIZE DOES NOT FIT ALL

People have different needs. There’s no one default. The smart profiler provides a flexible system to know the individual and to tune the app foreground and background activities to their needs, rather than having a one-size fits all solution for settings.

HOW TO DETERMINE A CUSTOMIZED DEFAULT

FACTORS

Phone Quality (Low-end, Average, or High-end): Determined by screen resolution and memory)

Storage: Determine amount currently available and if there is an SD card

Network (2G, 3G, 4G, none or wifi): This info helps us learn about which type of network the user is typically using, and helps us make an assumption about the quality of their data plan.

Data Available

ASSUMED DESIRED BEHAVIORS BASED ON FACTORS

Low-end Phone = resolution between x and x, memory between x and x

If a low-end phone...

Default settings should ...
Assume that the user has a limited data plan, poor battery and minimal storage.
Offer storage, battery and data options

Average Phone = resolution between x and x, memory between x and x

If an average phone...

Default settings should ...
Check available storage before offering storage options
Offer data options

High-end Phone = resolution between x and x, memory between x and x

If a high-end phone...

Default settings should ...
Assume that data is not an issue for the user; offer the options in settings, but don't prompt them to act.
Check available storage before offering storage options

UI PATTERNS

Something about ... UI patterns are designed to be flexible. Use the touchpoint that makes the most sense in your app. Also, something about how the style should match your app (tbd).

00-intro_storage-no-sd

ONBOARDING

Something about when to use this UI.

Tapping on 'Limit space used by this app' takes the user to the storage options in settings.

user-prompt-snackbar

SNACKBAR PROMPT

When to use it. Something about the state of a user's phone changing (ex: running out of storage or data).

Tapping on 'Fix It' takes the user to their options for storage in settings.

settings

SETTINGS

We recommend following the Android guidelines for the style of settings. We've created a set of all of the possible settings. Choose the ones that apply to your app. While all of the options to tune the app are available in settings, remember that very few users will go directly to settings. This is why is important to use one of the UI patterns above to make the user aware of their options.

Smart Profiler: Courier

For Courier:

STORAGE

  • Default experience related to storage is the same regardless of the case. Then we give the user options in the UI to keep older stories around for longer.
    • Display stories from the last 24 hours for each feed
    • Expire after reading

DATA

  • Prompt the user in on boarding if low end device (resolution below ‘x’, memory below ‘x’, etc): “Care to be wise about your data use?” - Yes, optimize the app for me - No, I don’t care; OR Looks like your internet is unreliable. Let’s make the best of it. Let’s optimize your experience.
    • The optimized experience (by default)
      • Over data: Fetch headlines and summary for each source; (can we limit to how many we fetch?)
      • Over wifi: Fetch media and full stories
    • When the user selects ‘yes, optimize’, we can give a secondary option to use only wifi.
  • Have the user choose. “Which do you care about more?"
    • Full stories (no media)
    • Media and headlines
    • Or we just choose a default and give the option to change in the UI — YES.

UI for story view

  • If no media, option to download manually (have this)
  • If no full story (option to fetch full story when connected next)

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.