Closed cedricloneux closed 1 year ago
Hi there! Thank you for taking the time to reach out and ask these questions! I will try to answer them one by one.
Why java ? Java is old and slow, require an interpreter to be installed (which can be buggy) and make project release as a jar. I would personally have chosen a language such as swift for performance and "Apple friendly" that would have produced a optimised binary. A binary could then be published to macOS package manager: brew. Making installation, upgrade easy. I'm not sure this can be achieved with a jar but currently user has track updates manually and call it with java -jar apple-notes-liberator.jar which is not user friendly. So is there a technical reason why you chose java ?
I wanted to learn more about working with Quarkus, and Quarkus is a Java-based framework. Simple as that!
If a binary is achieved and published to brew. I can help you with the publicataon process and provide the formula file. Using GitHub workflows (CI/CD) to auto-update this formula file would also be a good idea.
I do want to add a bit of CI/CD, and you are of course welcome to help! (see #7). As far as distribution, I've added instructions to the readme on how to install the application (and keep it up to date) with JBang. JBang enables a less-clunky distribution and usage experience.
Why output as a minified json ? I would have done an option to export as HTML, markdown and maybe even an format that allow import to other notes apps (the popular FOSS ones)
Because JSON was the easiest format to support. It is however by no means planned to be the only format supported (see #19, for example).
Is there any plan to make it possible to import notes that were previously exported ? If json is not human readable, its main utility would be a backup (which could be restored later)
Not at this time. I'm more than a little wary of making any modifications to a user's actual Notes database because I have no idea how Notes.app would treat updates that it itself did not make. Perhaps it would be fine, but perhaps not, and I don't want this application to be the reason your notes get corrupted. In addition, the focus of this application is planned to remain on getting data out of Notes.app, not putting data in.
Any and all contributions are welcome, so if you want to add or change something, please feel free to go ahead and do it and open a pull request!
I am going to close this but if you want to discuss further or have any other questions feel free to open up another issue!
Liberating apple notes, is a project I think about since a long time myself. However I wouldn't have implemented the project like you, that's why I have a few questions. I didn't find any discussion section on this repo so I will ask them here.
Why java ? Java is old and slow, require an interpreter to be installed (which can be buggy) and make project release as a jar. I would personally have chosen a language such as swift for performance and "Apple friendly" that would have produced a optimised binary. A binary could then be published to macOS package manager: brew. Making installation, upgrade easy. I'm not sure this can be achieved with a jar but currently user has track updates manually and call it with
java -jar apple-notes-liberator.jar
which is not user friendly. So is there a technical reason why you chose java ?If a binary is achieved and published to brew. I can help you with the publication process and provide the formula file. Using GitHub workflows (CI/CD) to auto-update this formula file would also be a good idea.
Why output as a minified json ? I would have done an option to export as HTML, markdown and maybe even an format that allow import to other notes apps (the popular FOSS ones)
Is there any plan to make it possible to import notes that were previously exported ? If json is not human readable, its main utility would be a backup (which could be restored later)