Coder Social home page Coder Social logo

gdd-app's Introduction

GDD-app

How to contribute

  • Pick a task from our kanban board on trello
  • Make sure the tests pass on Bitrise.
  • Open a Pull Request, or ask to be added to the repository and commit directly to master

Setting up the development environment

Requirements:

  1. Java 17
  2. Android Studio
  3. Android SDK

Steps:

  1. Install Android Studio: https://developer.android.com/studio/ or brew cask install android-studio
  2. Clone the repository to your computer
  3. Open Android Studio, select “Import”, and select the location where you’ve cloned the app
  4. [OPTIONAL] Copy properties/secrets.sample.properties to properties/secrets.properties and replace the placeholders
  5. Make sure the build succeeds - follow the instructions in the “build window”, e.g. to install the Android SDK and accept licenses
  6. Run the app on an emulator: Follow the app tutorial (https://developer.android.com/training/basics/firstapp/running-app) ‘s section Run on an emulator

Learning Resources

kotlin:
https://kotlinlang.org/docs/reference/android-overview.html

android:
https://developer.android.com/training/basics/firstapp/creating-project
https://antonioleiva.com/free-guide/
https://www.raywenderlich.com/library?domain_ids%5B%5D=2

Good Android tutorials:
https://www.raywenderlich.com/library?domain_ids%5B%5D=2

Android course:
https://developer.android.com/courses

Further documentation

Find more documentation in the doc folder, for example:

gdd-app's People

Contributors

anna-ruizferrer avatar ceciliahwang avatar claragaset1904 avatar daferpi avatar davidegavio avatar dekan avatar dependabot[bot] avatar dmulak-tw avatar eduardb avatar egovova11 avatar fergus-orbach avatar guspei avatar huanlui avatar jbors avatar kaeff avatar kozko2001 avatar loriking avatar mei4 avatar raul-oliver-tw avatar ricardo-rodriguez-tw avatar rkunal avatar roxanatanaselea avatar simtop avatar subbramanil avatar xuv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gdd-app's Issues

Fix image manipulation gestures on the masking screen

Current behaviour

  • Zooming in/out is possible while in drawing mode or erasing mode
  • While in zoom mode, zooming in/out doesn't follow the movement of the fingers, the image jumping around unpredictably

Expected behaviour

  • Zooming in/out is NOT possible while in drawing mode or erasing mode, but only when in Zoom mode
  • While in zoom mode, zooming in/out follows the movement of the fingers, or in other words, zoom on the pinched area

Downscale images larger than the maximum bitmap size

In the mask layer, we are loading a large bitmap that comes from the camera. However, on some devices, this bitmap exceeds the maximum size that can be loaded in a canvas. For example, on a Redmi 6A device, the picture is 3120x4160 in size, whereas the maximum bitmap can be 4096x4096.
As a solution, downscale the image so that it fits in the constraints.

See https://stackoverflow.com/questions/7428996/hw-accelerated-activity-how-to-get-opengl-texture-size-limit

Improve caching of Bitmaps by adding an in-memory LRU cache

Right now, thumbnails that appear on the metadata screen are cached on disk, using the decodeSampledBitmapAndCache() method from the BitmapReader class. This could be improved further by adding an intermediate layer of caching, in-memory LRU cache, implemented using the androidx.collection.LruCache class from AndroidX.

This cache could also be used for the blank Bitmap that currently gets created every time a mask is saved, here:

Bitmap.createBitmap(maskBitmap.width, maskBitmap.height, maskBitmap.config)

An additional requirement would be for this in-memory cache to react to low memory conditions. This can be achieved by overriding the onTrimMemory() method in the Application class, and depending on the level, evict an adequate number of bitmaps, using the trimToSize() method.

Relevant Android guide: https://developer.android.com/topic/performance/graphics/cache-bitmap#memory-cache

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.