Open Mobile Hub: Non-GMS and Cross-Platform Possibilities

youtube-cover
Subtitles
Show
quick announcement folks react Universe conf 2024 is on September 5th and 6th in VAV formerly react native EU we are now embracing all things react and react native meet your Tech Idols enjoy insightful talks from industry leaders and network like never before tickets are limited so grab yours soon at react univers con.
com don't forget Combo
tickets for the conference workshops are available too hello everyone I'm wuk Kinski and this is the react native Show podcast today we are discussing the OMH which is open mobile hub and forgot to mention this podcast is brought to you by Kack the total software engineering consultancy I'm ukash from Kack today with me is Diego zul laga from OMH uh hello Diego how are you he thank you for having me your show and also my colleague from Kack uh Kuba latki hello Kuba how are you hi I'm good I'm good I'm delighted to be here so guys I'd like you to introduce yourselves and I will start with Diego uh Diego can you tell us a little bit about yourself about your role in OMH and maybe briefly what OMH is hi everyone Hi UK hi Koopa thank you for inviting me to the conack podcast uh I'm the technical solution director at open mobile hub OMH uh within future way I joined about over a year ago this initiative and um it what I do on a day-to-day basis is enabling developers by providing uh developer tooling uh and SD case that fixs fragmentation and interoperability issues with Android native and crossplatform apps with react native uh and in the future with slaughter so the the idea uh that I what I do is uh I enable developers I raise awareness about the challenges that U they will run into these issues when rolling out their apps in other regions where there is no GMS available and also in the crossplatform also all the challenges that they face uh so I work very closely with them but
also I work very closely with technology Partners implementing the road map of OMH so you guys cola have been great at uh helping us implementing this road map and uh yeah in the past experience uh I work at Google as a developer relations engineer and software developer and uh the reason I I'm my drive is to push for OMH is because I experience first hand the developer fragmentation and challenges when implementing uh features into Apps and realize the opportunity to keep it a hand there so I also work on other areas in Android like of course Android more specifically in predictive back gesture so if you guys have used the feature to go back swipe inwards in your phone I and and checking that animation which is new I don't know if you guys seen it that it not it's not completely enabled it's kind of like behind the flag although they are going to enable it enable it pretty soon that's one of the features that I work on when I was at Google and also other issue other uh features like Emoji compat uh so if you are familiar with unco Japanese for the pop Emoji yeah and guilty of that I was part of the the team that uh enable developers with all the latest and greatest and inclusive emojis uh besides that I work in Google Assistant uh more specifically in Android app actions so Android app actions if you guys are familiar it's a natural language processing um capability in Android that you can use to actually trigger features in your app like hey order a pizza with pineapple and pepperoni please don't keep me the any Italian in the group exactly yeah but uh yeah this type of features and I implemented and and also I work at IBM in on integration customizing ing uh the tooling and the the solutions uh for sales Performance Management that's such a vast experience great to have you on the show and I'm
sure we'll have a great discussion about OMH and about GMS you already said the acronym we'll uh decipher the acronym later uh but you also said that you work with partners and like you said Kack is one of the partners for OMH uh working on the road map and I'm sure you will uh tell us more about it after your introduction oh yeah definitely um hi again I'm Kuba I'm I'm a ba working with col stack and um yes with Diego and together with our talented team of developers we I think worked for like past seven months uh to deliver the O initiative um and take it all the way through developing the modules the the provider plugins that we have in this open-source software Library um that is it both for Android and and react native developers and then what's the I don't want to jump too much deep into this because we have uh a road map for our episode and let's stick to it because that will make more sense but what's the GMS well I mean I think we need to kind of like break down the onion or like layer down the onion into multiple pieces right because it's a pretty complex issue that I'm not sure everybody understands um the complexity in the mobile development but I think we should kind of like break it down into two major components each component is has thousands of Parts but uh for the sake of Simplicity we're talking about Android open source project so a bonds Android the distribution that it's available for anyone to fork and we need to talk about uh Google mobile services GMS GMS G Google mobile services yeah exactly so I mean the as I mentioned AOSP it's an open- Source version of Android which is maintained by Google uh it has the basic operating system uh without any Google's proprietary apps and services right and it's available free to anyone to use and modify um however there is a layer on
top of it right for which is called GMS so let's maybe stick around let's stick around in Android open source project for a while um what are what are the products what are the use cases uh of using AOSP without Google mobile services it's a good question right the in many in many cases uh if you want to deliver a device that is stripped down from any other services for instance a use case that I noticed recently uh on a trip to Japan was you see back in the taxis or Ubers some screens that displays videos um or it show you kind of like a survey or you can actually search for something on those devices those are devices that uh a company sold to these uh the right hailing companies and they they have their cars and they probably don't need all the bells and whistles of Google mobile services like Google Maps they might not need that they they don't use um uh security of security because there is no third party apps using aosb is just a device with a single app from that vendor and they don't allow to run any other apps so there is no need for app and device Integrity they don't need push notifications they don't need Ina purchases although that's questionable it would be great you could buy directly from there but yeah this type of uh kind of like common devices you could say like single purpose custommade device device for for one purpose not a mobile fully fledged device exactly the more personal devices that indeed require these Services more communal devices I will say can be can leverage these uh strip down versions based on a USB right a Comal device I Bean devices that you can use anonymously right you are in a c driver you don't need to authenticate with your account you just use directly
as is but for any other use cases you definitely need all these capabilities because definitely you need security you need to authentication you need to make purchases you need push notifications all these capabilities oh you already um started talking about what are the services in Google mobile services are but let's so one category of uh AOSP usage would be the single purpose uh devices what are the other big categories of uh aosb usage well the idea is that um you very quickly run into Apps that or comp oems right that that uh manufactur devices um manufactured devices and they indeed need to be like mobile devices and they need these uh aosb and version of Android so they can add their own Services they not necessarily want to have uh any particular services from one vendor but they want to enable other services from other providers and it's not only Services it's it's also the the layer of UI right we can we can simply say that that even almost every phone that is in an iPhone to some degree might be using AOSP in general either directly from Google with GM s or customizing it with their own services like Amazon for example exactly or one plus or honor or HTC that that used to be quite famous some time ago yeah I had an htb that that were HTC those were great phones um okay to to to recap the Android ecosystem we have this open-source project Android open source project that anyone can use and then on top of that everyone almost everyone that uses Android open source project has to either use Google mobile services which are licensed and you have to obtain a license from Google or you have to reimplement all of the parts that you need in your application and services we mean authentication uh we mean storage we
mean Google Maps uh sorry maps maps simply maps in general uh uh and then you you basically have to like put that together yourself well you can put that together although of course it's a long road if you trade but uh you can rely on third party Services right so there is a uh and that's what uh we try to incentivize with an open mobile ecosystem is hey why there is no um there are many very strong products out there Sol Services providers that uh provide the similar type of services that Google mobile services does right so we're talking about in maps there's a myriad of service providers that can give you the same capabilities and I will dare to say even better than Google uh Google Maps right so yeah typically ER to be more realistic I would say leverage the existing service providers out there right and almost in every category there is one company providing a solution for that yeah and to elaborate a little bit further we were talking about um Amazon firos uh we're talking about meta right with Horizon o right which is a fork of AOSP right and they have different stores they have different sdks specific for their own device and uh we're talking about even Huawei with Harmon OS that also has its own SDK HMS kit as well that provide similar services and I mean there are some products that are going to be discontinued like Microsoft with a subsystem for Android which is also an aosd version that doesn't run GMS of course because they it doesn't have the license for GMS yeah so I think broadly we painted a picture what are the services and why maybe you don't uh always uh want to use uh Google mobile services so what's the what's the place of open mobile uh Hub in all of this what what are you trying who is open mobile hub and what are you trying to achieve yeah that's an
excellent question yeah and um um the open mobile hub um it's um it adds to two purposes and it's reflected in its architecture uh which we're probably going to cover it later in the in the in the podcast but um definitely there is uh the the the mobile development is divided in Two Worlds I will classify them one is the native development and crossplatform development and we're in the middle of the transition right uh you know the fights about uh Go Mobile first later or go crossplatform first um I don't want to get into any of those Wars because actually OMH promotes both um but I I I have my own beliefs as well but uh don't uh but in the case of dative first uh we we were talking about GMS non GMS even iOS developers on these in on the native side need these Frameworks to expand to multiple regions or for operational efficiencies uh better Services better more competition more Innovation right um so in this case OMH provides services for Native developers more specifically for Android n GMS and the idea is that uh we don't want to replicate the world as it is right now which is developers have to scramble with multiple learning multiple sdks if you go from one SDK to another you have to probably can almost rewrite big features in your app right it's not trivial to say I'm going to switch from this map provider to this other map provider for a right hailing app right it's like a vendor lock in when you start to using some as SDK and you are deep into your features with that SDK it tends to be harder to change your provider to some other provider to some other SDK exactly it yeah and it's a big big big issue because even it's documented large companies have been uh had like um uh crashes that they lost billions of dollars because some
Services went down and yeah I said switching from one provider to another is not trivial it's not that you can say hey something is breaking uh no now let's switch uh from this map provider to another and it's just like a flip of a switch right so yeah that's that's the one thing and I mentioned also crossplatform right on the crossplatform side we we also realized that uh we don't need more complexity for developers the the world as this is too complex it's overwhelming for developers learning another framework it's it's a another platform uh we even in the react native space when you try to Target at different devices it's uh it's still not as a straightforward as it should be right so uh why not also having a common interface or a unified interface for these service providers that that wraps them around provides the same affordances so developers can access these services without um having to worry about what is the function name in this SD what is the function name in other SD exactly and that was that was the main point of OMH when we started working to unify it right to to make it like a One-Stop shop to develop independent of the provider or Plugin that that you select uh with the same code behind and letting the OM Library sort of take care of the Lo IC when serving to in in this instance GMS n GMS with your configuration behind so I imagine let me uh phras it so that I understand and let me tell you if I'm right or wrong OMH set up to create something like Google mobile services for non GMS devices and does allow people to use Android open- source project uh without GMS and also provide um provider change capability so that this is provider agnostic almost that you can use different tools different providers Maps is a great example
because Maps is easy to uh to wrap your head around uh because you have Google Maps Apple Maps like Nokia maps it's a here Maps now and then open Street uh and there are a bunch of other providers for that I'm not sure in like the other packages that you have what are the providers in the sense of providing authentication or storage but we will we will talk about that later like you said um so that's the mission right that is right okay and then um in a broader sense uh OMH is that a foundation is that a like organization how do you work on the daily basis how do you work right uh om M just started as a as a an initiative uh kind of like a independent initiative right uh however we realize that um make it completely independent and also neutral so you know there is no Monopoly down down the line from any organizations about the framework we needed to be part of a an organization that fster a Innovation promote open source development enable developers help with the Outreach and I we couldn't we the the best of the best foundation for this was uh Linux Foundation Europe and um that that gave us kind of like the platform to access more developers and actually be part of uh their mission so as you guys know yeah yeah Linux Foundation has been around for a while since 2000 and it's a nonprofit organization yeah theyve Foster the growth of Open Source uh projects uh of course this is nothing new for any event uh but yeah very quick overview and they provide a yeah a neutral collaborative platform for developers companies and communities and more importantly um they ensure security and compliance as well yeah so there are some um adherance to software standards and Regulatory Compliance as well which sometimes they they they be they are an
oversight in most projects that become open source but uh for a project like this we thought this was uh kind of like a first class requirement oh yeah it was definitely a must have to start off and and work this whole set of plugins of modules into the OSS World especially like giving an environment to to collaborate giving an environment to to to help like Ren and help lead this Mission uh because like moving a little bit into the future like the storage the maps and authentication is not the only modules that that are on the road map as there's a lot of things as we already established GMS with their apis sdks have a lot of other functionalities and this is just like scratching the surface I would say yes exactly yeah and and and and what a better organization than Linux Foundation especially for or Open Standards as well we believe this should be part of uh uh open standard at the same time it shouldn't be developed in isolation defined by a single organization it should be part of a community effort so yeah that's that's our goal of joining liux Foundation okay awesome and then so I understand the Android ecosystem I understand what is an OMH I want to talk about the framework I want to talk about packages themselves but before that let's maybe talk about the use cases of actually using your packages not from the company point of view not the uh comp of view point of view of uh of some manufacturer using Android open source project but the point of view of a product why would I go for non GMS um standard what are the benefits to the end user to to my product right um definitely um having options for developers it's it's a key key benefit for developers and uh operational efficiencies as well right so as a
developer um being able to not avoid vendor loing and have access to an interoperable framework is is very important and um definitely sometimes when you start a small app this is not a big priority right uh because you're kind of like kicking tires learning the framework you enjoy working with certain uh provider and you stick to it for a while because yeah you're starting and learning that but for companies when you start kind of like becoming an app that is trending up and you see more adoption of your app you start thinking about what if right what if the service provider that I have my app start increasing the prices of these Services because they charge for for request right and if they charge 10% more in your for your app 10% less Revenue that you are going to obtain right for instance in a purchases right we see all these uh legal challenges that big Tech is facing because of uh hiking up the prices and forcing uh developers to pay to pay 30% uh fees uh for purchases through the platform so these type of challenges are are impacting app developers as well and and they want to have uh a choice so they can actually pick the solutions that suits better for them and also regions Sometimes some services are in avable in a specific region right so if you deploy your app in Singapore or in Japan H which are becoming highly regulated as well what do you do about it right uh if you if you choices and options that don't bring down your app that you say hey I need to turn off my app for a few weeks until I Implement in a purchases again or another mapping service or uh is it is will it be a better world if you say Okay I I I'm able to switch different providers and I and my users is completely seamless right so that's a huge plus and we believe that the future also benefits from having a solution
that is more agnostic uh there it drives more Innovation right what if uh if we're stuck with the same platform same Services what is the incentive for this company is to to improve so yeah we we realize that this is a challenge and yeah we're taking facing it head on that is true and I think there there's an additional part to it right it's the control over the experience you the developers serve to users because with GMS non GMS you don't have that that possibility right with om however that possibility to control how the the users experience your your app right how it is served to both how it even I think like a brilliant example is is what came out of our research is that developers have this need for instance in some regions to actually be more precise uh when serving Maps right because some of the providers have better Maps or more frequently used within within a particular region or within a particular user base and that's where where we where we tackle that that issue with OMH to allow that that possibility and to allow those developers to sort of um yeah take take take those sdks by the Reign and just do whatever they they want whatever they need and they ERS need with with it yeah I guess this is such a good example I have two thoughts on this uh one is that maybe in some cases in some regions people don't have a Google account to authenticate and maybe they don't want to like have one I I'm not sure where is that the case but like you said maybe in some user groups uh hackers for example uh that might be the the case so you want might want to authenticate with something else but and and the second something that Diego said um so from that particular use cases it seems like this might uh be a tool democratize somehow the market for
services and that uh smaller service providers might want to team up with you to include their services in your solution that is right yeah yeah and that's that's actually uh one of the foundation of uh OMH as well right we don't want to lock in the H services that are surfaced by OMH uh we want to make uh make it uh the frame more extensible based on what we call plugins which are pretty much implementations of the interfaces that surface multiple services so if I developer or from one of company from Maps wants to incorporate another or or another service or an authentication or cloud storage or in a purchase uh they will be able to get those interfaces Implement them according to the definition and then uh they automatically become part of uh another plugin that developers can use in their apps and they can switch and swap out and swap in new components um any time okay so uh you already started talking about technology talking about implementations talking about apis so let's let's jump into this um I'm going to refer to like your Solutions as a framework I'm not sure if that's a good uh word to use there but in my mind it is um your framework contains of three packages now and more on the road map but also I imagine some common parts so can you explain what the framework looks like what are the design principles that you want all of your packages to follow um what is the architecture of the solution and etc etc oh cool cool yeah the the weage right now the the current implementation includes uh Maps authentication and storage uh but we know that the the the gaps are bigger right there are many gaps there are many more services that uh are missing in the in N GMS devices so we have a road map of course of other other feature that I
can menure mention after I explain each one of the modules um so these kind of like the three main components available so we have Maps uh and Maps is uh supported supports Android and react native it provides mapping and navigation capabilities right and iOS of course because it's react native of course can I miss that so yeah and uh the current St is completed and available for use um it supports multiple providers uh we have support for map Box open shape map assure maps and of course Google Maps uh and um yeah it it comes with a a set of interfaces that each one of these a Maps uh we currently implemented right so we what we do is what bage does is kind of like a wrapper right that through composition you offered access to under good to the same map technology and uh but it's it's a common interface across all of them and um er this interface is extensible H but also it's also allows uh kind of like it future uh proven right so that means that if there are features because this is a very common challenge for developers if they want to actually leverage the technology under the hood there is kind of like something we call uh unofficially like a escape hatch so developers can say you know what I great I am able to implement 90% of my features with open mobile hub but if I need to access some vendor specific feature that it's great I want to have access to this this uh affordances right so that's kind of like that and uh in authentication it's uh we also support um Andre and react n if ER as its name goes it's an authentication uh SDK and identity management and it's completely available to use it supports various authentication methods uh based on o 2.
0
it integrates with multiple providers like Dropbox Google accounts Microsoft
accounts and um and Facebook right Diego why box in authentication Rockbox is a to very solid alternative for developers or for storage right so definitely we want to that that that leads me to my next module which is of course the storage mod right and and that's why we in order to be able to uh access the Dropbox storage module you need om authentication right so first you need to authenticate the user then you need to access with the authenticated user in Dropbox you will use it in the storage module right yeah the storage module is the the next one it's uh provides uh access to cloud storage solutions like full drive Dropbox one drive and more right so in in terms of architecture ukash um I as I mentioned before can we point one thing out Diego just here go I I want to point out the the thing that how holistically theage authentication maps and storage are sort of together like from the very beginning from the architecture from the use cases that that we have right so we have authentication that that that delivers the foundation for anything within storage right to be able to authenticate within your disk within your cloud storage so to speak um but then the same authentication can be utilized in map because you you may have an account in maps you may have already some things stored the developers at some point love to utilize such things so within coming to OMH it's already giving you a really really nice Foundation to personalize that experience not only to control it but also to personalize it within the functionalities that that you will they will have right um the same thing goes for Google Maps with their for instance recommendations all the places but the same thing goes for open open street maps and for instance places I I Reon that was somewhere on the road map if I
if I remember correctly yeah absolutely that's what that parent that we we see right all these services are part either built by a service provider that is specialized in specific uh specific solution like Maps mapbooks but sometimes they are part of like a like a big organization like Microsoft right like as you mentioned for Google you have this for Microsoft it's also another Universe right they have uh aure Maps they have uh Microsoft accounts they have one drive and they have many many other solutions that leverage the Microsoft accounts you described how the framework is all stitched together and then the separate packages uh what's the API or the developer from the packages how do I use the solution what is the what is the API for me that's right yeah so something that I uh probably forgot to mention is we B deeper into it the oage as I mentioned is Android native and react native as well right so in order to do that we need OMH two supports two layer architecture but that means is that uh on the native side on the Android native side we provide uh butl SDK right that is available for each one of these sub SD Cas uh if you want to name it like that so yeah the the the ability to and that the idea is that um developers simply use in Gradle the dependencies right um these dependencies you declare the dependencies in gral for either one of the either one of these modules and then you have multiple clients clients for maps clients for authentication or clients for storage and and from there it's very similar it's very client providers providers plugins okay okay exactly and the and the API it's very similar to in idiomatic or very familiar to what CA developers use if you use Google Maps the interface is
very intuitive and it kind of provide similar interfaces that you can that you've used in the past so you are not completely building on SDK that the naming conventions are completely different right so that's layer one layer two is uh crossplatform right crossplatform we are talking about react native of course and in the future there are going to be more a Frameworks that we support like flutter native scrip and others but uh for now our main main goal is to do a good job with react native which is huge and the challenge with is um of course what we wanted to leverage in the crossplatform framework is not to be used directly the the under the hood the sdks but instead of that using layer one um sdks from OMH so in that case we kind of like dog foot and make sure that the prpl from framework also leverage these capabilities right uh via the the new architecture in in in in react native so that's at a high level definitely we have a more this it's more complex than this and we can dedicate a full session talking about how it was implemented and more like a that's actually my my one of my last questions we are slowly wrapping up the episodes so um where can people find and maybe what can people find online about this what do we have in terms of developer support uh can people contribute how should they contribute how providers maybe can uh sign up for for the for support right um thank you yeah know the definitely we want with it's a it's it's the the the framework still there are some part that are completed and available for uh apps to incorporate them there there are some parts that are in in kind of like Early Access program so developers can sign up to uh access this and and we have uh yeah our all of our reper in kth Hub the main point of access is uh open mobile
hub.
org website and it points to all the
getting started uh all the guidelines all the r and in Sample apps and guidelines to implement plugins so from there you will find a ton of documentation API references um but most importantly repos with the solution and and we welcome Wen that then we actually can phrase new providers new developers because again omage is an OSS initiative it it is meant to be um with contribution it is meant to be extended in the in the long run um and and of course as usually because we love to base it on data we love to get feedback from users that that that is the most important part for us to drive at the road map even even more yes definitely good call Kuba we want Partners we want usage of the API we welcome BS uh we welcome PRS uh please get your hands dirty and let us know what you like what you don't like how we can improve it and of course we have uh as as part of the Linux Foundation we have about um monthly technical steering committee that is available in in in kiub anybody can join us and tell us our uh your use cases any comments uh this is a public uh meeting that uh we hold every month so please join us and let us know um what your use case and we welcome anybody any contributions from anybody I liked how you said bugs are welcome absolutely there will be but we hope yeah I think we the the the the framework is pretty solid but you know it's still uh under uh use and and we need uh more testing for sure I definitely recommend everyone to check it out because like this is a such a fresh unique uh project uh usually like on the day-to-day basis we developers we don't think about Google mobile services we don't think about all that glue that
ties in like the raw operating system with actually with actual user user facing services I don't know I don't even know how to phrase that but like like this like you said this thin layer of services makes your app make your makes your experience personalizable and unique let's say that that's the thing you think Android you think Google you don't even think that there's another world out there which which gives you a lot more flexibility a lot more um compatibility and and a lot more control um actually that's that that that's pretty funny because because again with the principle that we had in mind we we we based everything on Google being the golden standard but as we were developing and and trying to reach our capacity within within the other uh modules within the other providers we also call them plugins right so for instance mapbox or or open street maps we were we were trying to get actually we got there to get the par what Google offers but but we then we saw that there's so much more in in some of the providers access some of the maps bring a much broader experience and much better experience and something that that that the developers can leverage um also thanks to om AG because we give that that control and that ability to moderate and to modify it to your liking and to your users liking which is the most important part because at the end of the day we deliver experience to our users yeah yeah I think it's Innovation at the end of the day right like uh it's it's a shame honestly that what Kua you mentioned there are some features that have is have innovation in them that make the experience so much better but it's hidden because there use B user Bas is very tiny so you don't people are not
familiar but if you have the ability to say hey I'm going to kick tires maybe do some AB testing with this to and it's so cheap because I just need to swap out and swap in or maybe support both in multiple regions and see what is the uh level of Engagement and user happiness with my app I will be able to measure uh Apples to Apples the impact of one framework versus the other I think that's the biggest uh selling point uh of the OMH framework and I think that's the really nice way to wrap up this episodes thank you guys uh thank you Kuba thank you Diego for coming in uh today we were discussing om open Mobile H um initiative that is aiming to provide services mobile services I I still don't know how to name that but mobile services for devices that for some reason or another don't want to use Google mobile services so you can use OMH on GMS devices you can use it on non GMS devices you can swap Prov providers and for now you can use maps storage and authentication more to come uh bugs are welcome likeo said uh contributions are welcome feedback is welcome uh check them out uh and yeah let us know what you think about this episode about this conversation that we just had and um have fun with it thank you before we sign off an exciting update the react native show is relaunching us react Universe on air shortly we are not parying ways with react native instead we are expanding to cover every angle of crossplatform and full stack development from react native to react the content quality remains Stellar with conversations with leading Tech creators and thought leaders prepare to explore the react Universe with us see you next time [Music]
Timestamps
Show
Listen on Spotify
Watch on YouTube
Listen on SoundCloud
Listen on Apple Podcasts
Guests
Diego Zuluaga
Director of Solutions
@
Futurewei
quick announcement folks react Universe conf 2024 is on September 5th and 6th in VAV formerly react native EU we are now embracing all things react and react native meet your Tech Idols enjoy insightful talks from industry leaders and network like never before tickets are limited so grab yours soon at react univers con.
com don't forget Combo
tickets for the conference workshops are available too hello everyone I'm wuk Kinski and this is the react native Show podcast today we are discussing the OMH which is open mobile hub and forgot to mention this podcast is brought to you by Kack the total software engineering consultancy I'm ukash from Kack today with me is Diego zul laga from OMH uh hello Diego how are you he thank you for having me your show and also my colleague from Kack uh Kuba latki hello Kuba how are you hi I'm good I'm good I'm delighted to be here so guys I'd like you to introduce yourselves and I will start with Diego uh Diego can you tell us a little bit about yourself about your role in OMH and maybe briefly what OMH is hi everyone Hi UK hi Koopa thank you for inviting me to the conack podcast uh I'm the technical solution director at open mobile hub OMH uh within future way I joined about over a year ago this initiative and um it what I do on a day-to-day basis is enabling developers by providing uh developer tooling uh and SD case that fixs fragmentation and interoperability issues with Android native and crossplatform apps with react native uh and in the future with slaughter so the the idea uh that I what I do is uh I enable developers I raise awareness about the challenges that U they will run into these issues when rolling out their apps in other regions where there is no GMS available and also in the crossplatform also all the challenges that they face uh so I work very closely with them but
also I work very closely with technology Partners implementing the road map of OMH so you guys cola have been great at uh helping us implementing this road map and uh yeah in the past experience uh I work at Google as a developer relations engineer and software developer and uh the reason I I'm my drive is to push for OMH is because I experience first hand the developer fragmentation and challenges when implementing uh features into Apps and realize the opportunity to keep it a hand there so I also work on other areas in Android like of course Android more specifically in predictive back gesture so if you guys have used the feature to go back swipe inwards in your phone I and and checking that animation which is new I don't know if you guys seen it that it not it's not completely enabled it's kind of like behind the flag although they are going to enable it enable it pretty soon that's one of the features that I work on when I was at Google and also other issue other uh features like Emoji compat uh so if you are familiar with unco Japanese for the pop Emoji yeah and guilty of that I was part of the the team that uh enable developers with all the latest and greatest and inclusive emojis uh besides that I work in Google Assistant uh more specifically in Android app actions so Android app actions if you guys are familiar it's a natural language processing um capability in Android that you can use to actually trigger features in your app like hey order a pizza with pineapple and pepperoni please don't keep me the any Italian in the group exactly yeah but uh yeah this type of features and I implemented and and also I work at IBM in on integration customizing ing uh the tooling and the the solutions uh for sales Performance Management that's such a vast experience great to have you on the show and I'm
sure we'll have a great discussion about OMH and about GMS you already said the acronym we'll uh decipher the acronym later uh but you also said that you work with partners and like you said Kack is one of the partners for OMH uh working on the road map and I'm sure you will uh tell us more about it after your introduction oh yeah definitely um hi again I'm Kuba I'm I'm a ba working with col stack and um yes with Diego and together with our talented team of developers we I think worked for like past seven months uh to deliver the O initiative um and take it all the way through developing the modules the the provider plugins that we have in this open-source software Library um that is it both for Android and and react native developers and then what's the I don't want to jump too much deep into this because we have uh a road map for our episode and let's stick to it because that will make more sense but what's the GMS well I mean I think we need to kind of like break down the onion or like layer down the onion into multiple pieces right because it's a pretty complex issue that I'm not sure everybody understands um the complexity in the mobile development but I think we should kind of like break it down into two major components each component is has thousands of Parts but uh for the sake of Simplicity we're talking about Android open source project so a bonds Android the distribution that it's available for anyone to fork and we need to talk about uh Google mobile services GMS GMS G Google mobile services yeah exactly so I mean the as I mentioned AOSP it's an open- Source version of Android which is maintained by Google uh it has the basic operating system uh without any Google's proprietary apps and services right and it's available free to anyone to use and modify um however there is a layer on
top of it right for which is called GMS so let's maybe stick around let's stick around in Android open source project for a while um what are what are the products what are the use cases uh of using AOSP without Google mobile services it's a good question right the in many in many cases uh if you want to deliver a device that is stripped down from any other services for instance a use case that I noticed recently uh on a trip to Japan was you see back in the taxis or Ubers some screens that displays videos um or it show you kind of like a survey or you can actually search for something on those devices those are devices that uh a company sold to these uh the right hailing companies and they they have their cars and they probably don't need all the bells and whistles of Google mobile services like Google Maps they might not need that they they don't use um uh security of security because there is no third party apps using aosb is just a device with a single app from that vendor and they don't allow to run any other apps so there is no need for app and device Integrity they don't need push notifications they don't need Ina purchases although that's questionable it would be great you could buy directly from there but yeah this type of uh kind of like common devices you could say like single purpose custommade device device for for one purpose not a mobile fully fledged device exactly the more personal devices that indeed require these Services more communal devices I will say can be can leverage these uh strip down versions based on a USB right a Comal device I Bean devices that you can use anonymously right you are in a c driver you don't need to authenticate with your account you just use directly
as is but for any other use cases you definitely need all these capabilities because definitely you need security you need to authentication you need to make purchases you need push notifications all these capabilities oh you already um started talking about what are the services in Google mobile services are but let's so one category of uh AOSP usage would be the single purpose uh devices what are the other big categories of uh aosb usage well the idea is that um you very quickly run into Apps that or comp oems right that that uh manufactur devices um manufactured devices and they indeed need to be like mobile devices and they need these uh aosb and version of Android so they can add their own Services they not necessarily want to have uh any particular services from one vendor but they want to enable other services from other providers and it's not only Services it's it's also the the layer of UI right we can we can simply say that that even almost every phone that is in an iPhone to some degree might be using AOSP in general either directly from Google with GM s or customizing it with their own services like Amazon for example exactly or one plus or honor or HTC that that used to be quite famous some time ago yeah I had an htb that that were HTC those were great phones um okay to to to recap the Android ecosystem we have this open-source project Android open source project that anyone can use and then on top of that everyone almost everyone that uses Android open source project has to either use Google mobile services which are licensed and you have to obtain a license from Google or you have to reimplement all of the parts that you need in your application and services we mean authentication uh we mean storage we
mean Google Maps uh sorry maps maps simply maps in general uh uh and then you you basically have to like put that together yourself well you can put that together although of course it's a long road if you trade but uh you can rely on third party Services right so there is a uh and that's what uh we try to incentivize with an open mobile ecosystem is hey why there is no um there are many very strong products out there Sol Services providers that uh provide the similar type of services that Google mobile services does right so we're talking about in maps there's a myriad of service providers that can give you the same capabilities and I will dare to say even better than Google uh Google Maps right so yeah typically ER to be more realistic I would say leverage the existing service providers out there right and almost in every category there is one company providing a solution for that yeah and to elaborate a little bit further we were talking about um Amazon firos uh we're talking about meta right with Horizon o right which is a fork of AOSP right and they have different stores they have different sdks specific for their own device and uh we're talking about even Huawei with Harmon OS that also has its own SDK HMS kit as well that provide similar services and I mean there are some products that are going to be discontinued like Microsoft with a subsystem for Android which is also an aosd version that doesn't run GMS of course because they it doesn't have the license for GMS yeah so I think broadly we painted a picture what are the services and why maybe you don't uh always uh want to use uh Google mobile services so what's the what's the place of open mobile uh Hub in all of this what what are you trying who is open mobile hub and what are you trying to achieve yeah that's an
excellent question yeah and um um the open mobile hub um it's um it adds to two purposes and it's reflected in its architecture uh which we're probably going to cover it later in the in the in the podcast but um definitely there is uh the the the mobile development is divided in Two Worlds I will classify them one is the native development and crossplatform development and we're in the middle of the transition right uh you know the fights about uh Go Mobile first later or go crossplatform first um I don't want to get into any of those Wars because actually OMH promotes both um but I I I have my own beliefs as well but uh don't uh but in the case of dative first uh we we were talking about GMS non GMS even iOS developers on these in on the native side need these Frameworks to expand to multiple regions or for operational efficiencies uh better Services better more competition more Innovation right um so in this case OMH provides services for Native developers more specifically for Android n GMS and the idea is that uh we don't want to replicate the world as it is right now which is developers have to scramble with multiple learning multiple sdks if you go from one SDK to another you have to probably can almost rewrite big features in your app right it's not trivial to say I'm going to switch from this map provider to this other map provider for a right hailing app right it's like a vendor lock in when you start to using some as SDK and you are deep into your features with that SDK it tends to be harder to change your provider to some other provider to some other SDK exactly it yeah and it's a big big big issue because even it's documented large companies have been uh had like um uh crashes that they lost billions of dollars because some
Services went down and yeah I said switching from one provider to another is not trivial it's not that you can say hey something is breaking uh no now let's switch uh from this map provider to another and it's just like a flip of a switch right so yeah that's that's the one thing and I mentioned also crossplatform right on the crossplatform side we we also realized that uh we don't need more complexity for developers the the world as this is too complex it's overwhelming for developers learning another framework it's it's a another platform uh we even in the react native space when you try to Target at different devices it's uh it's still not as a straightforward as it should be right so uh why not also having a common interface or a unified interface for these service providers that that wraps them around provides the same affordances so developers can access these services without um having to worry about what is the function name in this SD what is the function name in other SD exactly and that was that was the main point of OMH when we started working to unify it right to to make it like a One-Stop shop to develop independent of the provider or Plugin that that you select uh with the same code behind and letting the OM Library sort of take care of the Lo IC when serving to in in this instance GMS n GMS with your configuration behind so I imagine let me uh phras it so that I understand and let me tell you if I'm right or wrong OMH set up to create something like Google mobile services for non GMS devices and does allow people to use Android open- source project uh without GMS and also provide um provider change capability so that this is provider agnostic almost that you can use different tools different providers Maps is a great example
because Maps is easy to uh to wrap your head around uh because you have Google Maps Apple Maps like Nokia maps it's a here Maps now and then open Street uh and there are a bunch of other providers for that I'm not sure in like the other packages that you have what are the providers in the sense of providing authentication or storage but we will we will talk about that later like you said um so that's the mission right that is right okay and then um in a broader sense uh OMH is that a foundation is that a like organization how do you work on the daily basis how do you work right uh om M just started as a as a an initiative uh kind of like a independent initiative right uh however we realize that um make it completely independent and also neutral so you know there is no Monopoly down down the line from any organizations about the framework we needed to be part of a an organization that fster a Innovation promote open source development enable developers help with the Outreach and I we couldn't we the the best of the best foundation for this was uh Linux Foundation Europe and um that that gave us kind of like the platform to access more developers and actually be part of uh their mission so as you guys know yeah yeah Linux Foundation has been around for a while since 2000 and it's a nonprofit organization yeah theyve Foster the growth of Open Source uh projects uh of course this is nothing new for any event uh but yeah very quick overview and they provide a yeah a neutral collaborative platform for developers companies and communities and more importantly um they ensure security and compliance as well yeah so there are some um adherance to software standards and Regulatory Compliance as well which sometimes they they they be they are an
oversight in most projects that become open source but uh for a project like this we thought this was uh kind of like a first class requirement oh yeah it was definitely a must have to start off and and work this whole set of plugins of modules into the OSS World especially like giving an environment to to collaborate giving an environment to to to help like Ren and help lead this Mission uh because like moving a little bit into the future like the storage the maps and authentication is not the only modules that that are on the road map as there's a lot of things as we already established GMS with their apis sdks have a lot of other functionalities and this is just like scratching the surface I would say yes exactly yeah and and and and what a better organization than Linux Foundation especially for or Open Standards as well we believe this should be part of uh uh open standard at the same time it shouldn't be developed in isolation defined by a single organization it should be part of a community effort so yeah that's that's our goal of joining liux Foundation okay awesome and then so I understand the Android ecosystem I understand what is an OMH I want to talk about the framework I want to talk about packages themselves but before that let's maybe talk about the use cases of actually using your packages not from the company point of view not the uh comp of view point of view of uh of some manufacturer using Android open source project but the point of view of a product why would I go for non GMS um standard what are the benefits to the end user to to my product right um definitely um having options for developers it's it's a key key benefit for developers and uh operational efficiencies as well right so as a
developer um being able to not avoid vendor loing and have access to an interoperable framework is is very important and um definitely sometimes when you start a small app this is not a big priority right uh because you're kind of like kicking tires learning the framework you enjoy working with certain uh provider and you stick to it for a while because yeah you're starting and learning that but for companies when you start kind of like becoming an app that is trending up and you see more adoption of your app you start thinking about what if right what if the service provider that I have my app start increasing the prices of these Services because they charge for for request right and if they charge 10% more in your for your app 10% less Revenue that you are going to obtain right for instance in a purchases right we see all these uh legal challenges that big Tech is facing because of uh hiking up the prices and forcing uh developers to pay to pay 30% uh fees uh for purchases through the platform so these type of challenges are are impacting app developers as well and and they want to have uh a choice so they can actually pick the solutions that suits better for them and also regions Sometimes some services are in avable in a specific region right so if you deploy your app in Singapore or in Japan H which are becoming highly regulated as well what do you do about it right uh if you if you choices and options that don't bring down your app that you say hey I need to turn off my app for a few weeks until I Implement in a purchases again or another mapping service or uh is it is will it be a better world if you say Okay I I I'm able to switch different providers and I and my users is completely seamless right so that's a huge plus and we believe that the future also benefits from having a solution
that is more agnostic uh there it drives more Innovation right what if uh if we're stuck with the same platform same Services what is the incentive for this company is to to improve so yeah we we realize that this is a challenge and yeah we're taking facing it head on that is true and I think there there's an additional part to it right it's the control over the experience you the developers serve to users because with GMS non GMS you don't have that that possibility right with om however that possibility to control how the the users experience your your app right how it is served to both how it even I think like a brilliant example is is what came out of our research is that developers have this need for instance in some regions to actually be more precise uh when serving Maps right because some of the providers have better Maps or more frequently used within within a particular region or within a particular user base and that's where where we where we tackle that that issue with OMH to allow that that possibility and to allow those developers to sort of um yeah take take take those sdks by the Reign and just do whatever they they want whatever they need and they ERS need with with it yeah I guess this is such a good example I have two thoughts on this uh one is that maybe in some cases in some regions people don't have a Google account to authenticate and maybe they don't want to like have one I I'm not sure where is that the case but like you said maybe in some user groups uh hackers for example uh that might be the the case so you want might want to authenticate with something else but and and the second something that Diego said um so from that particular use cases it seems like this might uh be a tool democratize somehow the market for
services and that uh smaller service providers might want to team up with you to include their services in your solution that is right yeah yeah and that's that's actually uh one of the foundation of uh OMH as well right we don't want to lock in the H services that are surfaced by OMH uh we want to make uh make it uh the frame more extensible based on what we call plugins which are pretty much implementations of the interfaces that surface multiple services so if I developer or from one of company from Maps wants to incorporate another or or another service or an authentication or cloud storage or in a purchase uh they will be able to get those interfaces Implement them according to the definition and then uh they automatically become part of uh another plugin that developers can use in their apps and they can switch and swap out and swap in new components um any time okay so uh you already started talking about technology talking about implementations talking about apis so let's let's jump into this um I'm going to refer to like your Solutions as a framework I'm not sure if that's a good uh word to use there but in my mind it is um your framework contains of three packages now and more on the road map but also I imagine some common parts so can you explain what the framework looks like what are the design principles that you want all of your packages to follow um what is the architecture of the solution and etc etc oh cool cool yeah the the weage right now the the current implementation includes uh Maps authentication and storage uh but we know that the the the gaps are bigger right there are many gaps there are many more services that uh are missing in the in N GMS devices so we have a road map of course of other other feature that I
can menure mention after I explain each one of the modules um so these kind of like the three main components available so we have Maps uh and Maps is uh supported supports Android and react native it provides mapping and navigation capabilities right and iOS of course because it's react native of course can I miss that so yeah and uh the current St is completed and available for use um it supports multiple providers uh we have support for map Box open shape map assure maps and of course Google Maps uh and um yeah it it comes with a a set of interfaces that each one of these a Maps uh we currently implemented right so we what we do is what bage does is kind of like a wrapper right that through composition you offered access to under good to the same map technology and uh but it's it's a common interface across all of them and um er this interface is extensible H but also it's also allows uh kind of like it future uh proven right so that means that if there are features because this is a very common challenge for developers if they want to actually leverage the technology under the hood there is kind of like something we call uh unofficially like a escape hatch so developers can say you know what I great I am able to implement 90% of my features with open mobile hub but if I need to access some vendor specific feature that it's great I want to have access to this this uh affordances right so that's kind of like that and uh in authentication it's uh we also support um Andre and react n if ER as its name goes it's an authentication uh SDK and identity management and it's completely available to use it supports various authentication methods uh based on o 2.
0
it integrates with multiple providers like Dropbox Google accounts Microsoft
accounts and um and Facebook right Diego why box in authentication Rockbox is a to very solid alternative for developers or for storage right so definitely we want to that that that leads me to my next module which is of course the storage mod right and and that's why we in order to be able to uh access the Dropbox storage module you need om authentication right so first you need to authenticate the user then you need to access with the authenticated user in Dropbox you will use it in the storage module right yeah the storage module is the the next one it's uh provides uh access to cloud storage solutions like full drive Dropbox one drive and more right so in in terms of architecture ukash um I as I mentioned before can we point one thing out Diego just here go I I want to point out the the thing that how holistically theage authentication maps and storage are sort of together like from the very beginning from the architecture from the use cases that that we have right so we have authentication that that that delivers the foundation for anything within storage right to be able to authenticate within your disk within your cloud storage so to speak um but then the same authentication can be utilized in map because you you may have an account in maps you may have already some things stored the developers at some point love to utilize such things so within coming to OMH it's already giving you a really really nice Foundation to personalize that experience not only to control it but also to personalize it within the functionalities that that you will they will have right um the same thing goes for Google Maps with their for instance recommendations all the places but the same thing goes for open open street maps and for instance places I I Reon that was somewhere on the road map if I
if I remember correctly yeah absolutely that's what that parent that we we see right all these services are part either built by a service provider that is specialized in specific uh specific solution like Maps mapbooks but sometimes they are part of like a like a big organization like Microsoft right like as you mentioned for Google you have this for Microsoft it's also another Universe right they have uh aure Maps they have uh Microsoft accounts they have one drive and they have many many other solutions that leverage the Microsoft accounts you described how the framework is all stitched together and then the separate packages uh what's the API or the developer from the packages how do I use the solution what is the what is the API for me that's right yeah so something that I uh probably forgot to mention is we B deeper into it the oage as I mentioned is Android native and react native as well right so in order to do that we need OMH two supports two layer architecture but that means is that uh on the native side on the Android native side we provide uh butl SDK right that is available for each one of these sub SD Cas uh if you want to name it like that so yeah the the the ability to and that the idea is that um developers simply use in Gradle the dependencies right um these dependencies you declare the dependencies in gral for either one of the either one of these modules and then you have multiple clients clients for maps clients for authentication or clients for storage and and from there it's very similar it's very client providers providers plugins okay okay exactly and the and the API it's very similar to in idiomatic or very familiar to what CA developers use if you use Google Maps the interface is
very intuitive and it kind of provide similar interfaces that you can that you've used in the past so you are not completely building on SDK that the naming conventions are completely different right so that's layer one layer two is uh crossplatform right crossplatform we are talking about react native of course and in the future there are going to be more a Frameworks that we support like flutter native scrip and others but uh for now our main main goal is to do a good job with react native which is huge and the challenge with is um of course what we wanted to leverage in the crossplatform framework is not to be used directly the the under the hood the sdks but instead of that using layer one um sdks from OMH so in that case we kind of like dog foot and make sure that the prpl from framework also leverage these capabilities right uh via the the new architecture in in in in react native so that's at a high level definitely we have a more this it's more complex than this and we can dedicate a full session talking about how it was implemented and more like a that's actually my my one of my last questions we are slowly wrapping up the episodes so um where can people find and maybe what can people find online about this what do we have in terms of developer support uh can people contribute how should they contribute how providers maybe can uh sign up for for the for support right um thank you yeah know the definitely we want with it's a it's it's the the the framework still there are some part that are completed and available for uh apps to incorporate them there there are some parts that are in in kind of like Early Access program so developers can sign up to uh access this and and we have uh yeah our all of our reper in kth Hub the main point of access is uh open mobile
hub.
org website and it points to all the
getting started uh all the guidelines all the r and in Sample apps and guidelines to implement plugins so from there you will find a ton of documentation API references um but most importantly repos with the solution and and we welcome Wen that then we actually can phrase new providers new developers because again omage is an OSS initiative it it is meant to be um with contribution it is meant to be extended in the in the long run um and and of course as usually because we love to base it on data we love to get feedback from users that that that is the most important part for us to drive at the road map even even more yes definitely good call Kuba we want Partners we want usage of the API we welcome BS uh we welcome PRS uh please get your hands dirty and let us know what you like what you don't like how we can improve it and of course we have uh as as part of the Linux Foundation we have about um monthly technical steering committee that is available in in in kiub anybody can join us and tell us our uh your use cases any comments uh this is a public uh meeting that uh we hold every month so please join us and let us know um what your use case and we welcome anybody any contributions from anybody I liked how you said bugs are welcome absolutely there will be but we hope yeah I think we the the the the framework is pretty solid but you know it's still uh under uh use and and we need uh more testing for sure I definitely recommend everyone to check it out because like this is a such a fresh unique uh project uh usually like on the day-to-day basis we developers we don't think about Google mobile services we don't think about all that glue that
ties in like the raw operating system with actually with actual user user facing services I don't know I don't even know how to phrase that but like like this like you said this thin layer of services makes your app make your makes your experience personalizable and unique let's say that that's the thing you think Android you think Google you don't even think that there's another world out there which which gives you a lot more flexibility a lot more um compatibility and and a lot more control um actually that's that that that's pretty funny because because again with the principle that we had in mind we we we based everything on Google being the golden standard but as we were developing and and trying to reach our capacity within within the other uh modules within the other providers we also call them plugins right so for instance mapbox or or open street maps we were we were trying to get actually we got there to get the par what Google offers but but we then we saw that there's so much more in in some of the providers access some of the maps bring a much broader experience and much better experience and something that that that the developers can leverage um also thanks to om AG because we give that that control and that ability to moderate and to modify it to your liking and to your users liking which is the most important part because at the end of the day we deliver experience to our users yeah yeah I think it's Innovation at the end of the day right like uh it's it's a shame honestly that what Kua you mentioned there are some features that have is have innovation in them that make the experience so much better but it's hidden because there use B user Bas is very tiny so you don't people are not
familiar but if you have the ability to say hey I'm going to kick tires maybe do some AB testing with this to and it's so cheap because I just need to swap out and swap in or maybe support both in multiple regions and see what is the uh level of Engagement and user happiness with my app I will be able to measure uh Apples to Apples the impact of one framework versus the other I think that's the biggest uh selling point uh of the OMH framework and I think that's the really nice way to wrap up this episodes thank you guys uh thank you Kuba thank you Diego for coming in uh today we were discussing om open Mobile H um initiative that is aiming to provide services mobile services I I still don't know how to name that but mobile services for devices that for some reason or another don't want to use Google mobile services so you can use OMH on GMS devices you can use it on non GMS devices you can swap Prov providers and for now you can use maps storage and authentication more to come uh bugs are welcome likeo said uh contributions are welcome feedback is welcome uh check them out uh and yeah let us know what you think about this episode about this conversation that we just had and um have fun with it thank you before we sign off an exciting update the react native show is relaunching us react Universe on air shortly we are not parying ways with react native instead we are expanding to cover every angle of crossplatform and full stack development from react native to react the content quality remains Stellar with conversations with leading Tech creators and thought leaders prepare to explore the react Universe with us see you next time [Music]
Show Transcript

When you build applications, do you ever consider users who may not have access to Google Mobile Services? They may not be your target audience now, but it’s good to be aware of what options you have in store for non-GMS devices—which is exactly what we’re talking about in this episode!

To do so, Łukasz invited two guests:

  • Diego Zuluaga—Director of Technical Solution Architecture at Open Mobile Hub,
  • Kuba Luberadzki—Product Owner at Callstack and a part of the team working on Open Mobile Hub’s maps, storage, and authentication modules.

Together, they discuss OMH’s mission to provide a vendor-independent framework for cross-platform app development. Tune in to learn about the purpose, architecture, and implementation details of Open Mobile Hub’s maps, authentication, and storage modules and how they can benefit your product and users.

Non-GMS topics we discuss in this episode

  • Android Open Source Project (AOSP) and Google Mobile Services (GMS)
  • Use cases for AOSP in non-GMS products
  • Open Mobile Hub’s role and mission
  • OMH’s way of work
  • Challenges addressed by OMH’s modules
  • Deep-dive into OMH’s modules: maps, authentication, storage
  • Developer support and community involvement

Resources on OMH

Facing complex cross-platform challenges?

We help deliver consistent experiences across platforms with one codebase.

Let’s chat
Link copied to clipboard!
//
Insights

Learn more about

Cross-Platform

Here's everything we published recently on this topic.

Sort
//
Cross-Platform

We can help you move
it forward!

At Callstack, we work with companies big and small, pushing React Native everyday.

Code Sharing

Implement effective code-sharing strategies across all platforms to accelerate shipping and reduce code duplication.

Migration to React Native

Plan and execute a migration from native or hybrid stacks to React Native with minimal disruption and clear technical direction.

Desktop App Development

Develop powerful cross-platform desktop applications that work across Linux, Windows and Mac.

Web App Development

Build a solid foundation that meets latest standards and scales easily to other platforms in the future.