![]() Crashed as soon as it tried to get my location. UI is completely custom, so didn't attempt to feel native. Outback Steakhouse - 1/4 stars - Not updated for modern iPhones, so the whole app is letterboxed. Every page has a full screen modal spinner. UPS - 1/4 stars - All views of the app are awkward embedded web views. I tried to find one that was (a) well-known and (b) third-party (not developed by Xamarin or Microsoft). They seem to do a great job of keeping up to date with iOS/Android SDK changes, too.īut when trying to find an example of a native-feeling Xamarin-based app for iOS, I was really underwhelmed. I took a look at Xamarin recently to see how far it had come, and the tooling is really impressive. If you get into a groove you can build up a set of regexes to give you a sloppy transpiler that does most of the tedious porting for you. So I've found that copy/paste-port-based code sharing between platforms is not just a lesser evil, but actually a strategy that has its own unique benefits. It's like the most intense kind of PR code review you can get. Things you would not have found if you were only writing the code once. You will find that the copy/paste port will actually uncover bugs, optimizations, edge cases, etc., that can then be ported back to the original platform. After one platform has the module in place and well-tested, do a copy/paste port to the other platform. Minimal use of fancy language features that may not port cleanly. So the code should be pure, boring, plain old Java, Kotlin, Swift, whatever. ![]() So heavy use of delegates/interfaces/injections to handle platform-specific functionality, even for one-liners like getting current system time. After that, implement it on one platform first in a platform agnostic way. Here's a fine alternative to code-sharing: well first and foremost you need to have a good requirements spec. ![]() Other than that, it's almost like the collective consciousnesses of Google and Apple conspire to make cost-effective code-sharing of typical CRUD apps almost impossible. If you have some incredibly tricky low-level algorithm/library and/or need for speed, think database, crypto, intense graphics, etc., then fine, you may be able to swing a shared module in C++ or something. It's not cost-effective to have any bespoke business logic (models, controllers, etc.) shared between the two mobile platforms (don't get me started on sharing UI code). I have come to this same conclusion after many years. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |