Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Progress Report #1381

Open
ylian opened this issue Oct 21, 2019 · 5 comments
Open

Progress Report #1381

ylian opened this issue Oct 21, 2019 · 5 comments

Comments

@ylian
Copy link
Member

ylian commented Oct 21, 2019

Some users have raised the issue (#1380) of the lack of communication from me in the past year. I admit this is an issue, but I really needed the quiet time to actually get things done. So this ticket is created and pinned on top, as a place for me to post progress reports. Anyone who wants to know what I am working on can subscribe to this ticket, and I will post updates here from time to time.

Comments are disabled on this ticket to minimize the notifications people will get. If you have questions, feel free to ask me via email.

@ylian
Copy link
Member Author

ylian commented Oct 21, 2019

[Oct. 21, 2019]
In the past year I have been working non-stop to tackle some really big pieces --- basically all the major pieces left to bring Quiver to its full potential.

Here are the three major projects I have been working on:

  1. A major rewrite of the macOS app. This involves basically rewriting everything other than the model layer (which was already rewritten in Quiver 3.2). This major rewrite is needed for several reasons:
    (1) Objective-C code needs to be converted to Swift (DONE already).
    (2) Old imperative UI approach needs to be replaced with a declarative approach (DONE already).
    (3) UI enhancements (sectioned note list, TOC, etc.) (Work in progress).
    (4) Bring Quiver to other platforms (foundation is laid for Linux and Windows, will tackle after Quiver 4.0 for macOS is released).

  2. A complete rewrite of the iOS app. There are also a few things here:
    (1) Convert all Objective-C code to Swift (DONE already)
    (2) Convert the old imperative UI approach to a declarative approach (DONE already).
    (3) Adding more syncing options (work in progress)
    (4) Editing support (work in progress)

  3. Building a new code editor and a Markdown editor from the ground up. This is needed for editing support in the iOS app (since Ace doesn't work on mobile), as well as fixing long-standing issues with Ace. This involves:
    (1) A new lossless Markdown parser (DONE)
    (2) A new code editor/Markdown editor (80% done)
    (3) Vim keybinding support (50% done)

@HappenApps HappenApps locked and limited conversation to collaborators Oct 21, 2019
@ylian ylian pinned this issue Oct 21, 2019
@ylian
Copy link
Member Author

ylian commented Oct 21, 2019

[Oct. 21, 2019]
Since all three projects are near completion, I am currently pushing myself through the final stretch. Once these three major tasks are completed, my workload will be much lighter and the rest are just small enhancements and bug fixes.

The deliverables for these three big projects are:

  1. Quiver for macOS 4.0 (UI rewrite, UI enhancements, new code & markdown editor, laying foundation for Quiver for Windows/Linux)
  2. Quiver for iOS 2.0 (full-featured, more syncing options, new code & markdown editor, editing support)

I have been aiming to get everything done by the end of this month, so I still have ten days. Even if I can't finish everything this month, I will report my progress here. And I absolutely want to finish these three projects before the end of this year, since I still hope to enjoy Christmas a little.

@ylian
Copy link
Member Author

ylian commented Nov 1, 2019

[Nov. 1, 2019]
So I still have quite a lot of work left, but all three projects are making steady progress.

macOS:

  • Did a lot of work on the note list. Added new features such as sectioned note list (for nested notebooks) and pinning notes on top.
  • Also did a lot of work on the sidebar. Since it's a new UI implementation, a lot of small details needed to be added back such as type select and keyboard shortcuts.
  • What's remaining: search bar (a new design), some small details, more code cleanup.

iOS:

  • The UI is in good shape.
  • Syncing support is still work in progress. The syncing library (I call it "NebulaKit") was already converted to Swift, and in the last few days I converted some remaining UI code in the syncing library to a declarative approach (this means eventually this will work on Android as well).

Editors:

  • The code editor now can load and use TextMate language files (.tmlanguage). This means users will be able to install new language packs on their own. I wrote a new Swift library (I call it "SyntaxKit") that can load TextMate grammar files and use them to parse raw code into tokens. There are still issues with loading more complex TextMate grammar files, so that will be fixed next.

The new goal is to finish everything (which means the release of Quiver for macOS 4.0 and Quiver for iOS 2.0) by the end of November. The chance of meeting this new goal is quite good.

@ylian
Copy link
Member Author

ylian commented Dec 2, 2019

[Dec. 2, 2019]
It's time for an update.

I have been focusing on the editor rewrite in the last month:

  • The Swift library for parsing TextMate language files (SyntaxKit) is now in good shape. I added a lot of tests and it seems to be able to load most language files without issues.
  • I also added lots of tests to the Markdown parser (marca) so it's quite stable now.
  • The editors themselves are still not stable, and this is the major blocker for the releases. I will add more tests and fix issues. Writing editors from scratch is quite challenging indeed and now I have a new appreciation for Ace and CodeMirror.

I am adjusting my strategy a bit, since I know my users need to see something delivered soon. I will focus on what's needed to deliver Quiver for iOS 2.0, which are: the new editors, iOS syncing improvements. As soon as these are done, I will deliver Quiver for iOS 2.0.

To deliver Quiver for macOS 4.0, I also need:

  • Vim support for editors
  • Finishing up some UI details

The new deadline is this year-end. I won't take a break until all three major projects are done and both products (Quiver for iOS 2.0, Quiver for macOS 4.0) are delivered.

@ylian
Copy link
Member Author

ylian commented Jan 26, 2020

So I worked through last Christmas and New Year, but I am still struggling with the editor issues. I have to admit that there is still so much unfinished work that I won't be able to release the updates any time soon. I know I have let many of you down. But at this point all I can do is to keep working.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant