Coder Social home page Coder Social logo

azureplus / loose-leaf Goto Github PK

View Code? Open in Web Editor NEW

This project forked from adamwulf/loose-leaf

0.0 1.0 0.0 395.32 MB

Intuitive note taking app. Import and annotate PDFs, manipulate imported photos with intuitive gestures, and take notes with Apple Pencil.

Home Page: https://getlooseleaf.com

License: MIT License

Objective-C 66.40% HTML 30.30% CSS 0.55% Shell 0.23% C 0.08% Objective-C++ 2.40% Perl 0.04%

loose-leaf's Introduction

Overview

Loose Leaf is a notes app for iPad created by Adam Wulf. Learn more and see demo videos at https://getlooseleaf.com. Support this project and download the app on the App Store.

Unique Gestures

Organize pages into documents:

Duplicate pages and scraps with gestures:

Ink sticks to imported images:

Use ruler for straight or curved lines:

Scissors can cut imported images:

More gesture videos available on the Loose Leaf site.

Building Loose Leaf

First, clone the Loose Leaf repository and initialize all submodules:

git clone [email protected]:adamwulf/loose-leaf.git
cd loose-leaf
git submodule update --recursive --init

Next, you'll need to add your own client ids and secrets for Fabric, Twitter, Facebook, Pinterest, Imgur, and Mixpanel. All of these are stored in a file called AppIds.plist. To get this file setup, copy from the template file:

cp Project/LooseLeaf/AppIds-Template.plist Project/LooseLeaf/AppIds.plist
open Project/LooseLeaf/AppIds.plist

If you don't have ids for some of these services, leaving them blank will still let you build and run the app, though some features may not work.

That's it for configuration - now you can build the app and run it on your iPad!

Get Involved

Help translate Loose Leaf into your language! Join the project and start translating here: https://poeditor.com/join/project/UBaYwL0YTh

Some great places to get involved and help make Loose Leaf better for everyone:

  • Feature #279, #696, and #697 - Add additional share options - destinations like Dropbox, Droplr, and Evernote would be nice additions
  • Feature #1576 Update the ruler tool to act similar to Apple's Notes app and toggle to stay on the page
  • Feature #1618 Support arbitrary page sizes instead of only screen-ratio sized pages
  • Feature #1632 Add optional margin to imported PDFs
  • Bug #1723 - Exporting multiple pages will often crash if the user has more than 10 documents imported. Super sneaky memory corruption bug going on here.

Loose Leaf includes a spacecommander as a submodule to help with keeping code style consistent. Please format all your code before submitting a PR by using the included format-all.sh and format-staged.sh scripts.

More Code

Much of the Loose Leaf codebase is separated into separate submodules:

  1. PerformanceBezier - A small library to dramatically speed up common operations on UIBezierPath, and also bring its functionality closer to NSBezierPath
  2. ClippingBezier - Calculates intersection points, paths, and shapes between two UIBezierPaths
  3. JotUI - OpenGL based drawing view that supports custom brush textures, undo/redo, and asynchronous import and export.
  4. MMStretchGestureRecognizers - A collection of three gestures that can stretch an arbitrary view with four fingers, used in the clone gesture.
  5. cloudkit-manager - A simple wrapper to CloudKit to make passing messages with attachments easy between multiple users
  6. touch-chart - Simplify and smooth UIBezierPaths by reducing the number of elements within the path

Branches

The master branch contains all in-development code. The alpha branch contains the settings used for App Store releases. Each App Store release is tagged. The marketing branch shows hand shadows during gestures and is used to record demo videos.

Icons

Many of the icons used in Loose Leaf were created in PaintCode. Other icons were created with Photoshop. Both *.paintcode and *.psd files are included in the Icons directory.

Extra Applications

This repo also includes two apps used during development of Loose Leaf:

  1. LittleClipper - This app was used to help test the touch-chart and ClippingBezier libraries during the development of the scissors feature.
  2. ShapeShifter - This app demonstrates the use of MMStretchGestureRecognizers and helped to tune the clone scrap/page gesture.

License

The Loose Leaf app and sample code are provided under the MIT License. Attribution is required.

Support This Project

loose-leaf's People

Contributors

adamwulf avatar

Watchers

 avatar

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.