I totally understand why you'd feel like this, but I think there are two big reasons why this is only true to a lesser extent with RN:
1) There are a ton of native APIs that accomplish exactly the same things, but have different APIs because different people built them and there's no pressure to make them consistent. Examples: layouting (just calculate x, y, width, height's of a view tree), animation, storage, networking, touch handling, the list goes on... it's a waste to have to learn the implementation specific quirks of each platform.
2) We've focused on making sure we can make apps at least as good as the native ones for the platform. Specifically this has meant exposing platform specific apis (e.g. Android's material touch ripple, iOS's gaussian blurs, etc), allowing arbitrary new ones to be added, and encouraging designers to still design their apps for each platform individually.
There's unfortunately a lot of non-overlapping work so we decided to release what we have finished incrementally. Most of the team uses OS X for development so it was a natural first choice. We're planning on adding the missing Windows and Linux support soon!
I'm not exactly sure of your circumstances, but this sounds doable.
The public React Native API allows you to expose arbitrary pre-existing Views and expose new native functionality in modules accessible from JS. These can be written in java (or in C/C++ and exposed via JNI -- and if you structure your code properly you can also share that native module with an iOS RN app if you'd like).
We also support having just part of the app, e.g. some of the screens, written with React Native. This is what we do with the Groups app.
The main thing to be aware of is that splitting app logic and data management between JS and native will mean that you need to be careful with cache consistency between the two.
Can someone explain how this is enforceable if a citizen renounces citizenship while they are abroad? Would that be similar to renouncing citizenship while you owe taxes (I'm not really sure what would happen in that case either)?
Wow, what perfect timing, I'm planning on moving out there in 6 months and just started my research :) I'll add my thoughts to the wiki after I go through the whole process
Sounds like they probably used social engineering to get initial password(s) and thanks to poor security practices used those to go from there? Not to sound malicious or impersonal, but breaking something so wide open is like a solving a hard puzzle, I'd be really interested to hear more details on how they actually did it.
1) There are a ton of native APIs that accomplish exactly the same things, but have different APIs because different people built them and there's no pressure to make them consistent. Examples: layouting (just calculate x, y, width, height's of a view tree), animation, storage, networking, touch handling, the list goes on... it's a waste to have to learn the implementation specific quirks of each platform.
2) We've focused on making sure we can make apps at least as good as the native ones for the platform. Specifically this has meant exposing platform specific apis (e.g. Android's material touch ripple, iOS's gaussian blurs, etc), allowing arbitrary new ones to be added, and encouraging designers to still design their apps for each platform individually.