Friday, February 22, 2019

I saw J. Alan Childs speak on having an offline mode for a mobile app at Minnesota Enterprise Mobile last night.

He uses SQLite databases for keeping data locally and then, when an internet connection is available, there is a way to sync this stuff up to a server of master records somewhere. This of course reminded me of the architecture I was exposed to at the @hand corporation and led me to attend Minnesota Enterprise Mobile which is basically a Xamarin user group when I otherwise probably would not of had much interest. It is the other user group that meets at ILM's office, the first being the Twin Cities .NET User Group which certainly I've attended many times. J. Alan Childs is at the left in the photo here and to the right is Steve Killingbeck introducing him. The wand in foreground is used to read the RFID (radio-frequency identification) tag out of a pig's ear in a manner that gives the user a little more reach and eventually some Bluetooth magic will associate wands like these to Mr. Child's mobile app which has to do with pig farming, a sphere of business in remote locales where there is no 3G (third generation broadband internet), 4G (fourth generation broadband internet), no Wi-Fi, and probably no roaming even, hence demanding the need for an offline mode. A lot of times the pigs are inside of a metal-sided barn and there is no way to even talk to a wireless router in an adjacent building really. Realm databases are also used in Mr. Child's stuff in addition to SQLite. I could tell he likes SQLite better though he admitted that Realm had better performance. He described Realm as MVCesque and not what one typically thinks of as a relational database. Conceptually the "Source of Truth" in a mobile app is one URL to hit for an API regardless of your version of a mobile app. You should talk to a consistent set of endpoints, handing in the version of your app, and then branch to differing code as needed based on the version. This will allow users to stay on older versions for a while without huge pressure to upgrade their mobile app or a breaking change occurring at the API. When syncing stuff to the server, things have to be transaction-based. Either all of the data makes it or none of the data makes it. Think of transferring money from checkings to savings in banking. If some part of the transaction fails. The whole of the transaction needs to be rolled back. If $100 cannot make it to savings then $100 should not just vanish from checkings. Instead of OtterBox cases for tablets, the Kids Case with a handle was recommended for field work. Seach Amazon for "Kids Case" and the product should be findable. This product is a case with a handle on the long edge of an iPad. It's that simple. There are many different vendors at Amazon that sell the Kids Case. Don't expect to scan QR (Quick Response) codes and barcodes in the pig business because things are too dirty and fans are blowing, making pieces of paper wave. UV (UltraViolet) lights may be used to clean smart devices going into areas with livestock to keep them from spreading germs. Your phone is the most unclean thing on you! Bleach can be used to clean it too. If you are trying to get an app approved in Apple's App Store the absence of in-app purchases may make it tricky or at least bring about a long wait. Apple makes a lot of its money off of in-app purchases. Renesas, a type of Japanese Microchip, was namedropped by a member of the audience.

No comments:

Post a Comment