74 karma · joined September 7, 2013
BTW. I recently measured the spread operator in a microbenchmark. Interestingly, while the native spread was faster on Hermes and JSC, it was slower on V8/Chrome, and it's faster there to use `Object.assign()`, i.e.:
['@babel/plugin-proposal-object-rest-spread', { loose: true, useBuiltIns: true }]
The problem is that Watermelon assumes a consistent view of the entire database, so you can't have multiple writers - at least not without synchronous notifications from IndexedDB (not a thing), leader election (cannot be made reliable), or some design sacrifices. To be reconsidered in the future...
Sync is mostly there, but undocumented :/ Coming soon…
And it's not like reinventing the wheel (it still uses SQLite), more like inventing better suspenders for the whole undercarriage ;)
The point is that most current solutions for React Native apps start being super slow when you get to 1000s, or have other issues (like using SQLite directly doesn't give you observability)
- You can't run Realm on the web (not as a database, offline), but you can with Watermelon
- Realm is _a_ database, Watermelon is a more universal database framework that can be backed by any underlying database via an adapter
- Realm is more than just a database, it's also a whole app development platform. And it's designed to sync with a proprietary Realm cloud service. Watermelon is just a local database, but it tracks changes in the database so you can plug it in and synchronize with an arbitrary backend
- I heard that Realm (on React Native at least) doesn't perform super well when you get to many thousands/tens of thousands of records, but i haven't tested it yet myself, so take it with a grain of salt. Watermelon always does lazy loading so it doesn't really affect performance how many records total there are.
For example, if you have a todo app, and you mark a task as done, you'd want the task component to re-render, the list to re-render (put the task at the bottom), and update the right counters (the counter of all tasks, and a counter of all tasks in ta project), etc. I hope you're getting the point.
Watermelon is an observable abstraction on top of SQLite (or an arbitrary database), so that you can connect data to components and have them update automatically
We're looking for talented programmers who are passionate about building amazing applications and are great at front-end development (all Javascript-related). It is necessary that:
* You love programming and newest technologies
* JavaScript, CSS3, HTML5 are your best friends
* You have developed mobile web apps
* You want to work from home and can be very independent
* You know English very well so you can read and comment in this language
* You are willing to learn and develop all the time
* You have good communication skills
* You are open-minded, honest and friendly
* You can write clear and intelligible code documentation
* You must be Polish (our core team is Polish)
We will be even happier if you: * Know server-side programming languages
* Have some experience in using Node-Webkit
* Have worked on mobile apps development using the PhoneGap technology
* Have already developed mobile apps for Windows Phone, Windows RT and Blackberry
* Have any experience with native app development for Android or Windows
* Have worked on the project managed according to agile SCRUM methodology
* Have used Git for code management
* Having read the book by David Allen "Getting Things Done" is a bonus, too :-)
What we offer: * No office - everybody works from home the way they want, at the time they want
* Great team - we all communicate over the internet and actually like each other :-)
* Regular "Company wide meetings" - we spend a few days in some cool place together having fun and getting to know each other in real life - and the company pays for everything :-)
* Competitive salary - you don't need to move to a bigger city or another country to earn more, you can earn a good salary by working for a Polish-based global company
* Growth - Michael Sliwinski - our founder and CEO is focused on growth and he wants all of us to grow and be better and love what we do.
You will work on our native apps which are very advanced web-view based apps. You will work with a world-class designer and a team of very talented developers.If you think you're the candidate for the job, send us your CV along with your nickname on GitHub. Tell us what you did in the past and what you're working on and what is your favorite part of being a programmer.
It'd be great having you on board!
More info: http://nozbe.com/jobs/
[blatant self-promotion and links to all of my apps]