That blocked me to update React to 16 for a while. The project has become inactive quickly after I started working on Inkdrop, unfortunately. For example, it depends on AltJS which is one of flux architecture implementation. It gave me many good practices and let me avoid a lot of issues beforehand, but there was one drawback - It also brought me some technical debt, as many other projects usually have theirs. I started from forking the Kitematic repository. I found that their codebase can be reusable to build my app because their project license were not GPL. So, I decided to learn the current best practices on how to build a beautiful UI and extensible architecture from existing open-source projects like Atom editor and Kitematic. But I wanted to roll it out as soon as possible in order to validate my app idea. It was the first time I build the desktop app based on Electron and ReactJS. Thanks to those frameworks, I could build both basically only with JavaScript and that allows the app to share a lot of code between desktop and mobile. Both versions use the same frameworks which are ReactJS and Redux. To make it run on 5 platforms, I use Electron for desktop OSs(Windows/Linux/macOS) and React Native for mobile OSs(iOS/Android). Overall I am happy with CouchDB and PouchDB so far. Currently I’m operating CouchDB on AWS EC2 since I found that the server load is basically stable and not so heavy like BtoC services than I expected and Cloudant was very sluggish and not comfortable to manage on IBM Cloud. As I don’t feel like operating servers, I started using Cloudant in the early days. Besides, there is a DBaaS for CouchDB called Cloudant which can elastically scales throughput and storage independently. PouchDB looked promising as it supports client-side MapReduce to build indices and has full-text search module. 3 years ago when I started this project, firestore was not so flexible to accomplish that yet. Why I’ve chosen CouchDB instead of other PaaS (Platform-as-a-Service) which supports syncing data across devices like firebase is because I needed flexible client-side indexing support. If it does not work, I could build my own client database module as CouchDB is RESTful. First I built the desktop version and didn’t care about mobile platforms because I assumed that PouchDB works as well on mobile because it’s written in JavaScript and there seems to be some options already. PouchDB is a JavaScript database inspired by CouchDB, which can sync with it. It has a web-based GUI called Fauxton which lets you manage databases and documents easily. Those close and interactive communications with users would be a big advantage that you can stand out against big companies.ĬouchDB and PouchDB for seamless data sync with offline supportĪpache CouchDB is a document-oriented database(NoSQL) that has HTTP-based JSON API and supports multi-master sync. Moreover, some users have helped me solve a bug which I can’t reproduce by working with me for several hours. As Inkdrop is for programmers, some guys even suggested me a code example to solve an issue like this case on the forum. It would not have been possible to make Inkdrop mature without all its users’ support. Relying on users’ support is important because your resource is quite limited. Users who enjoy your app basically hope your app success as well and are happy to help you. Be honest and explain what you are working on and what you are struggling to solve. Solo developers are not actually developing their apps alone because you can always ask your users for help. Thanks to their quick responses and reports, I could solve it within 24 hours. I have tested it carefully with some beta releases beforehand but I couldn’t know that bug. For example, I experienced such type of bugs recently, which was that the app launches with blank screen. Features working fine on your environment sometimes don’t work on other environments as expected. Inkdrop for mobile built with React Nativeĭeveloping cross-platform apps usually involves many unreproducible and unpredictable issues. In this article, I would like to share how I did for this project so far. Not only relying on them, but also you need some development strategies to keep the project sustainable. As you know, it is hard to make your app support those 5 platforms alone but not impossible by leveraging powerful frameworks. I’m the solo developer of Inkdrop - a cross-platform Markdown note-taking app that supports macOS, Linux, Windows, Android and iOS. Technical tips to build a SaaS that runs and syncs on 5 platforms
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |