Giter Club home page Giter Club logo

triangledraw-ios's People

Contributors

neoneye 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

Watchers

 avatar  avatar  avatar  avatar  avatar

triangledraw-ios's Issues

Customizable behavior for hiding the dots

Several users have requested individual customization of the dots, like this:

  • Hide the dots in fullscreen mode.
  • Always hide the dots.
  • Only hide the dots while drawing.
  • Smaller dots.

Automatic nodes remover

Automatic nodes remover
For my designs I am using Affinity Designer. When I finish my project in TriangleDraw I export it as a SVG to Affinity Designer. The problem is the project has so many nodes which I have to remove manually. It's a painstaking process.
PJ

Insert picture tool

Insert picture tool
I would like to have this feature to draw on the photo or other sketch
PJ

This requires a more flexible file format, that can store image files inside it.
Maybe the file format should be a directory with files inside.

Launch screen with graphics

The older version of TriangleDraw had a "TriangleDraw" logo centered on the launch screen. It was a 1024x768 png file, so I didn't have to deal with different screen sizes.

With varying screen sizes it's more tricky to show a logo/icon on the launch screen.

Game of life

Apply the Conway's Game of life algorithm. There are a few non-square variants that operates on triangles, hexagons, a long list of grid types.

A pause/unpause button, a step button (for when paused), easy to tap to change cells, and extra features could be a clear/random buttons or a super advanced menu that lets u change the ruleset.

Thanks to Chase Marangu for several GoL suggests.

Prevent rapid tapping on the "Create Document" button

Tapping this button multiple times is not good. It creates several documents in an undefined state.

There is a slight delay from tapping the "Create Document" button until the document have been fully created in the file system. A blocking mechanism is needed. That stays invisible if the document gets fully created within a reasonable amount of time. Otherwise a HUD is to be shown. Or an error message.

This is what it looks like when I'm using an ApplePencil and create documents rapidly.
IMG_1568

Canvas: Separate page for Export

Currently the Canvas menu is a mix of settings UI and export UI.

The UI becomes more legible by splitting it up into two separate menus, like this:

gear_and_export

With the typical Apple "Share" icon for the export menu, and a "Gear" icon for the settings menu.

The export UI can have buttons like this:

  • Save to photos, 2048x2048.
  • Save to photos, 8k.
  • Export to PDF, with pdf options.
  • Export to SVG, with svg options.
  • Export to a zip containing PDF+SVG+Hi resolution image.

Color support

I have made a few preparations. Technically it's doable. However usability is tricky.
It's a challenge is to not break the current UI.

Separate app for colors

Instead of complicating the existing app, then make a separate app,
where the UI is dedicated for colors.

Color management

It’s very rare to find an app or program with a good color selection ui. Sometimes they’re overcomplicated for the sake of having a lot of choice, and catering to people who know how to use hex color names. Sometimes they’re too simple, like snapchat, where you have a tiny sliding scale, and you’ll never get the same color twice. Perhaps have a fairly long list of colors, with word-based names.

How should the user interface work?

Drawing with colors

In terms of actually using the colors, perhaps you could have two options: one where you select a color, then pick all the triangles you want to turn to that color, and another where you can just place triangles in that color.

There is also the "Force touch gesture" or "Long press gesture", that can be useful for dealing with colors.

Layers with types

There is currently no support for colors and no support for layers.

Having a layer editor with these operations:

  • Add layer
  • Delete layer
  • Duplicate layer
  • Move layer up/down
  • Hide/show layer
  • Adjust opacity of layer
  • Layer blend operation

The current app has 2 colors: Black and White. This can be called a "2color layer".

Other layer types can be: "color palette layer", "color arbitrary layer", "normal map layer".

Export settings per document

The current app has no export settings. When exporting then the entire drawing gets exported.

If the artist has made a tiny drawing, then it's currently overkill to export all of the empty space.

It may be a small area of the drawing that should be exported.

Localization

In the past I had the texts translated to these languages:

  • da Danish
  • de German
  • en English
  • es Spanish
  • fr French
  • ja Japanese
  • pt_PT Portuguese
  • ru Russian
  • zh_CN Chinese

I would like to localize all the texts again.

Copy, Paste

"The ability to copy and paste drawings from one canvas to another."

How should the user interface be like?

You could have the option to click a “copy” button, then it puts you in a mode where you draw a shape around what you want to copy, then it gets saved and you can paste it onto the same or other canvases and move it around?

Or possible selection shapes: triangle, square, hexagon?

Displace top-half and bottom-half in opposite directions

displacement

When displacing top-half from left to right

The triangles that gets pushed over the top-right edge, reappears at the bottom-right edge with Y axis flipped.

The triangles that gets pushed over the bottom-left edge, reappears at the top-left edge with Y axis flipped.

When displacing top-half from right to left

Then overflowing triangles behaves the opposite way.

Long press

Tap for displacing by 1 step.

Long press for displacing continuously.

Bigger drawing canvas

Bigger drawing canvas
I like to draw in hexagon, but when I work on bigger object I would like to have ability to draw on bigger grid
PJ

expanding canvas
Expanding canvas may be useful in some cases as a workaround, because artwork gets cropped after applying the subdivision feature.
AS

Bigger canvas. That is indeed useful.

This requires a new file format. I'm thinking of using protocol buffers for this.

SVG export - Setting for what to be exported

Ahmed Teleb writes:

When I save SVG it save with the black background, yes it’s separated to two layers
and it’s easy to be removed on any vector app, but it will be amazing to be able to
save only the design. that will save us as users some time.

So a setting for what is to be exported:

  1. SVG contain both black triangles and white triangles.
  2. SVG contain only black triangles.
  3. SVG contain only white triangles.

I'm considering making layers, where each layer can have different properties, such as is this triangle transparent or filled. However this is further into the future.

iOS13 Dark Mode

With iOS13 there is now dark mode.

I need to go through the app and make adjustments for this.

SwiftyBeaver

Your project uses SwiftyBeaver. SwiftyBeaver has security vulnerabilities that you may wish to address. Consider removing SwiftyBeaver if your app transmits PII. SwiftyBeaver/SwiftyBeaver#453

Rotate by 30 degrees

The "Rotate operation" currently only does 60 degrees rotations. So currently users have to the 30 degree rotation in other graphics editors.

I wonder if 30 degrees feels like an improvement over the 60 degree steps?

  • Rotate button must rotate the canvas in 30 degree steps.
  • Gestures must be rotated, so interaction works in the 30 degree mode.
  • Extend fileformat with parameter for 0degree / 30degree.
  • TDRenderBitmap must deal with 30 degree rotation. I may have to first do a 90 degree coordinate transform and afterwards do a 90 degree transform the other direction. Does it look good with a mix of thumbnails where some hexagons are portrait and other landscape?
  • TDRenderVector must deal with 30 degree rotation.

Export to SVG

Currently there is export to PDF.

I have done experiments with export to SVG. However there are tiny unwanted hairlines between adjacent triangles of the same color.

Better onboarding experience

@axello raised this concern:

The app starts in the browser mode, as if you are an experienced user. Would perhaps be nicer to start with a blank drawing for starters, or have a little onboarding which points to the big + sign?

That is indeed a thing that is missing.

I wonder how to do it.

The UIDocumentBrowserViewController is a blackbox made by Apple, that indie developers can't make changes to.

The UIDocumentBrowserViewController must be the root view controller, so I cannot present another onboarding view controller before it.

I can write a better explanation inside the App Store with a video+screenshots that shows how to get started.

Have a "Modify" menu as in Procreate

The current app uses lots of screen estate for rarely used tools. These bottom toolbar items can be moved into a "Modify" menu as in Procreate. So there will be more screen estate available for the canvas.

Multi export

  1. Select multiple documents on the "Browser" page.
  2. Tap the "Export" button.
  3. This create a zip file that can be sent via email or airdropped.

The zip file can be organized like this:

original/
    Drawing1.triangleDraw
    Drawing2.triangleDraw
pdf/
    Drawing1.pdf
    Drawing2.pdf
svg/
    Drawing1.svg
    Drawing2.svg

Asset library

Asset library
for keeping ready made objects for reuse in new designs.
PJ

This requires adding a copy/paste mechanism, maybe with a selection area.

Symmetry lines

Currently there is no way for the user to see if Symmetry is enabled and what kind of symmetry.

This can be shown with lines, indicating where the symmetry happens.

When the user have selected the "3 way symmetry mode", then there are 3 lines dividing the canvas.

When the user have selected the "xy symmetry mode", then there are 1 horizontal line and 1 vertical line dividing the canvas.

The user can enabled/disable these lines in preferences. Maybe the lines should auto hide/show while the user is drawing.

TriangleDraw on macOS

The core code is the "TriangleDrawLibrary", which has no dependencies on iOS nor macOS.

There's currently the iOS project, that uses the "TriangleDrawLibrary".

It's possible to make a macOS that also makes use of the "TriangleDrawLibrary".

Live symmetry tool

Live symmetry tool
for drawing patterns and see changes in real time.
PJ

I'm thinking of showing a line where the symmetry is located, so it's easier to see what's going on.

Repository for drawings

I have posted my TriangleDraw drawings on Instagram and Reddit, and I no longer want to support social media platforms.

I think it's better to have a dedicated repository for drawings, where everyone can submit their drawings.

author/
    drawingname/
        original file
        rendered file, png/jpg/svg
        readme.md

Subdivide by 2, 3, 5

Often a drawing is too rough and I find that I want smaller triangles for adding finer details. Currently the user will have to redraw everything all over. This is annoying.

Make a button for doing a "Subdivide" operation:

  • In the "By 2" case, then 1 triangle gets subdivided into 4 triangles.
  • In the "By 3" case, then 1 triangle gets subdivided into 9 triangles.
  • In the "By 5" case, then 1 triangle gets subdivided into 25 triangles.

The overflow gets discarded, so that the canvas size stays the same.

Multiple users draw simultaneous

Until 9mar2021 the TriangleDraw app have assumed that it's just a single user interacting with the app.

I have noticed when multiple kids are interacting with an iPad, they try to draw at the same time.

When multiple kids are touching the screen it causes major havoc. Two kids drawing at the same time may be interpreted as a pinch to zoom gesture. It freaks out the gesture recognizer code. So the drawing is not happening, causing confusion for the kids.

Allowing for multiple users to draw may complicate the UI. Two finger gestures are not possible, so this impacts zoom and scroll.

  • Pinch to zoom will not be possible.
  • Scrolling will not be possible.

Perhaps introduce a lock/unlock button, that toggles two finger gestures.

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.