Any way to port Android apps to the Windows Phone platform - OS Porting

Hello XDA,
I have developed an app called Ring My Droid (Scan the QR-Code attached with this post).
Currently this app is only available for the Android platform through the Google Play Store.
I am learning to develop apps for the Windows Phone platform too. But, then I came across this section of the XDA Forum and I am interested to know if anyone out here is aware of a tool or a website or blog providing tutorials or a methodology for porting my existing application to the Windows Phone platform?
This may be a noob question, but I am very new to programming for Windows Phone so bear with me..
Any help would be greatly appreciated!
Thanks.

prognosis: serious
I don't know of any frameworks off the top of my head, but I can infer some of the answers based on experience in other platforms. And those answers are not very promising, unfortunately.
1) If you want your app to be cross-platform, you need to design it as such from inception. Otherwise you're in for a lot of work no matter how you slice it.
2) Because WP and Android use different languages for native apps, you have a big problem in just getting your source code targeted to both platforms. If your codebase is already in Java, you'll need a Java -> C#/VB/C++ translator to make it work. I'm not sure that a product like that exists. If you had started with, say, C#, you could utilize something like Xamarin to target Android and WP at the same time, but like I said I'm not aware of anything similar for Java->C#.
3) If your app is written in HTML 5, then you could adapt it to work on WP8 with very little extra effort. But in that case I bet you would have already known that you're cross-platform-compatible and wouldn't ask this question to begin with.
4) If you're resigned to rewriting your app while maintaining its core design the same, then the basic methodology is as follows:
a) refactor your app into well-defined, loosely coupled components.
b) factor away all Android specific APIs into adapter classes and have all "core" functionality written in terms of those adapters
c) port your core classes to a different platform (WP) in a WP-supported language, such as C#. This would be a straight, mechanical but nevertheless manual rewrite.
d) reimplement your missing adapters on WP to take advantage of WP APIs, while leaving internal-facing interfaces the same, so your core classes just work.
e) all of this makes sense only if there is enough complex core functionality to warrant the rearchitecture + translation. If your app is little more than glue shuffling data between external data sources, then all of this is not worth it, and a compete rewrite is the only way to go (sorry I don't have a QR reader readily available right now so I can't check your app directly).

Related

WP7 -IS- Backwards compatible (well almost)

Applications that were made for Windows Mobile 6 are compatible with Windows Phone 7 Series. The interface of the new mobile operating system has been changed though, so the user interface for these applications will have to be changed as well.
"So there is no reason why programs written for Windows Mobile 6 cannot run on the new version of the OS", said Maarten Sonneveld of Microsoft Netherlands to Tweakers.net. "The interface is complete different though, so the applications will have to be changed somewhat before being ready for Windows Phone 7 Series".
It is still unclear how developers can port their user interfaces to the new version of Windows Mobile. Microsoft will only disclose how applications can be developed and distributed at their developer event Mix2010.
Microsoft announced it’s new OS on Monday afternoon at the Mobile World Congress in Barcelona. The OS is primarily aimed at synchronisation and integration with Microsft-services like Windows Live, Bing, Zune and Xbox Live. Aside from those Windows Phone 7 Series can also synchronise with Google-accounts and facebook.
Click to expand...
Click to collapse
Source
So in summary, while none of the current applications will run on it, the underlying non-UI APIs will be compatible. So if understand correctly, porting would just a case of redeveloping the UI then recompiling, rather than starting completely from scratch. This acts to filter out apps with no more developer support, and promote a consistent UI.
Doesn't sound too bad to me.
That might explain why TomTom was seen on that screenshot of WP7 running on the HD2 (although, it could be a fake!). TomTom takes control of the screen, so uses no WM interface elements. So, it might be able to run full-screen apps/games without changes.
But, who knows...
elyl said:
That might explain why TomTom was seen on that screenshot of WP7 running on the HD2 (although, it could be a fake!). TomTom takes control of the screen, so uses no WM interface elements. So, it might be able to run full-screen apps/games without changes.
But, who knows...
Click to expand...
Click to collapse
I was just thinking the same except if you use the included .net controls, there's no reason that the OS couldn't just reskin them automatically to be at least somewhat more in line with the WP7 styling.
This would be excellent if it's true - and I can't see why it wouldn't be. The UI may be new but why throw away a perfectly good underlying core.
What would also be ideal is if the "multi-tasking" involved an app being set to pause in the background by default, but with a "keep me running" API call available for apps that needed it. I'm sure most apps hog resourses not because they need to but because the developer hasn't really thought about how the rest of the device performs when his app has been left running.
Makes sense, WindowsCE core is still the same
Zaim2 said:
Applications that were made for Windows Mobile 6 are compatible with Windows Phone 7 Series
Click to expand...
Click to collapse
Absolutely wrong statement due to incorrect translation. Original: "De interface van Windows Phone 7 Series is totaal anders, waardoor er in elk geval iets aan de applicaties moet gebeuren voordat ze geschikt zijn voor Windows Phone 7 Series"
Even google translates it correctly:
"The interface of Windows 7 Phone Series is different, which in any case something should happen to the applications before they are suitable for Windows 7 Phone Series".
We have some "ms confidential" documentation dated January 2010 that proves that none of the existing apps would be compatible with WinPhone7. And the only programming suite that is available to "generic" application-writers is Silverlight+XNA. Native apps are prohibited. Only OEMs and MO are allowed to create them (and even they have a set of limitations).
We would not have even source code compatibility - as all our C++ apps have to be converted to .NET.
mamaich said:
We have some "ms confidential" documentation dated January 2010...
Click to expand...
Click to collapse
What the heck? And you say that only now? What else is in there? Any word about how background tasks are handled? Please give us some more information, or maybe, can you upload that documentation?
freyberry said:
maybe, can you upload that documentation?
Click to expand...
Click to collapse
Obviously I cannot. As it would reveal the person who provided it.
Just to prove that such info really exists - see attached screenshots.
I really hope that the community would force MS to change such a dumb idea to limit independent software vendors to create only managed apps. Prohibiting C++ as a developing language, and "hiding" Windows API from programmer would force lots of developers to abandon this platform. The main reason of success of old WinMobile OSes was the ability to recompile "desktop" apps to WinMobile with just a minor set of changes (ANSI->Unicode + some interface changes).
P.S. I don't read PMs.
Obviously I cannot. As it would reveal the person who provided it.
Just to prove that such info really exists - see attached screenshots.
Click to expand...
Click to collapse
Well, there's certainly a way to remove that information. But anyway, what about background tasks? Are third party applications allowed to run in the background?
mamaich said:
Obviously I cannot. As it would reveal the person who provided it.
Just to prove that such info really exists - see attached screenshots.
I really hope that the community would force MS to change such a dumb idea to limit independent software vendors to create only managed apps. Prohibiting C++ as a developing language, and "hiding" Windows API from programmer would force lots of developers to abandon this platform. The main reason of success of old WinMobile OSes was the ability to recompile "desktop" apps to WinMobile with just a minor set of changes (ANSI->Unicode + some interface changes).
P.S. I don't read PMs.
Click to expand...
Click to collapse
Wow, I can't believe noone has picked up on this
freyberry said:
Are third party applications allowed to run in the background?
Click to expand...
Click to collapse
OS itself supports multitasking, see attach. But "Windows Phone OS 7.0 Application Platform" that we'll be forced to use to create apps may force our application to be paused in background. I never programmed Silverlight and XNA and can't tell how multitatsking is made in them.
WinPhone 7 == Zune Phone. Both are based on CE kernel, and they should have lots of common in implementation of multitasking, clipboard, etc.
OS itself supports multitasking, see attach. But "Windows Phone OS 7.0 Application Platform" that we'll be forced to use to create apps may force our application to be paused in background.
Click to expand...
Click to collapse
The question is, can we write applications that are not automatically suspended when sent to the background? What are the policies on this?
It says multiple processes can run at the same time, but it does not say whether they get suspended automatically.
Is there any info on this? Maybe in the "Scheduling" section?
I’m not sure this is a big deal. I can see them saying a lot of native C++ apps may have compatibility issues. I could go either way on it with the limited amount of information I have on this. I’ll have a better opinion at and after MIX
Note that this could be old documentation, and it’s pretty annoying you're leaking confidential documentation. Personally, I hope you get into trouble for breaking your contract - they trust you and you're posting it? Yuck.
To be fair, though, every app we’ve written has been managed, and Microsoft hasn't t said P/Invoking is verboten, so what would be the problem?
There’s probably exceptions for games and the like, and the documents you've scanned even say a waiver is available to use the Native APIs. So I don’t know what you're complaining about…
Microsoft's dev teams have been listening to developers - why not get them to chime in and also give them a chance to hear you. Posting confidential Microsoft documents, assuming those are real, is not the way to get them to listen
Best,
-Auri
freyberry said:
The question is, can we write applications that are not automatically suspended when sent to the background? What are the policies on this?
It says multiple processes can run at the same time, but it does not say whether they get suspended automatically.
Is there any info on this? Maybe in the "Scheduling" section?
Click to expand...
Click to collapse
Personally, I like Android's approach to this, where Services can run in the background, but UI apps are allowed to be "put to sleep" while other apps run. But then again, we may see a lot of that come into play come MIX and "Answer Time"
Best,
-Auri
Well, I am now both excited and nervous -I think I will just cool my jets until MIX10 and just enjoy the eye candy for now. At worst - if the interface is nice, but the core is crap I am sure some of the boys here at xda will make us an inteface port for 6.5.x that acts and looks like the new hotness with the old compatibility. - lets see MIX
AuriRahimzadeh said:
Note that this could be old documentation, and it’s pretty annoying you're leaking confidential documentation.
Click to expand...
Click to collapse
Docs are dated 2010.
I'm not leaking the documentation. I'm sharing the information that anyway would be opened in some days, maybe weeks.
And screens are posted here just as a confirmation of my words. You may think that these pics come from my mind and are made with photoshop - it is your opinion.
I really think that WinPhone 7 would be a failure similar to desktop Vista. Of cause some people would like it, but most would stay on WM 6.x and wait for the next version.
Regarding P/Invoke. As far as I've seen, "unsafe" operations are prohibited in XNA and Silverlight. Otherwise we would be able to call coredll funcs and run native apps (and do everything else that is allowed in our chamber).
mamaich said:
Docs are dated 2010.
I'm not leaking the documentation. I'm sharing the information that anyway would be opened in some days, maybe weeks.
And screens are posted here just as a confirmation of my words. You may think that these pics come from my mind and are made with photoshop - it is your opinion.
I really think that WinPhone 7 would be a failure similar to desktop Vista. Of cause some people would like it, but most would stay on WM 6.x and wait for the next version.
Regarding P/Invoke. As far as I've seen, "unsafe" operations are prohibited in XNA and Silverlight. Otherwise we would be able to call coredll funcs and run native apps (and do everything else that is allowed in our chamber).
Click to expand...
Click to collapse
Mamaich any though of a WP7 ce6.0 bsp for all the current cortex A8 devices running on a ce5.2 bsp, will the new kernel support them natively or will extensive bsp/bootloader hacking be required?
P/invoke surely is a limitation of .NET CF, rather than Silverlight/XNA libraries?
I think it would be a bit stupid to remove P/Invoking, because it's just not realistic to rely on .NETCF alone which has soooo much stuff stripped out to minimize size.
Will we be seeing a whole new .NETCF so soon after 3.5? I highly doubt it...Unless MS have been working overtime the past year
Shame, time to stop mobile development altogether if this is true. When we developers are considered as dumb earning pipes for companies who in their arrogant big ways think they have all the wisdom, and app developers only make annoying software that makes their precious leaky OS'es crash, it's time to move on. i would have been talking about IPhone, Android etc, but sadly we must add Microsoft to the list also.
Then there's the $1195,- and airplane tickets we have to pay to get to the Mix2010 in oder to maybe maybe get to be a "partner" with access to limited native API's (probably only reserved for the big companies) and don't even bother talking about giving away 30% of our earnings to a company that last year made how many billions of profits was it ?
Time to start an XDA OS based on REAL Linux maybe ? NVidia have a nice dev-board available for $400,- with Tegra on it. That's what I call developer friendly.
Cheers !
Regardless of how this will play out, I'm pretty sure of two things:
1. Closing down the OS may be beneficial for the majority of users by bringing stability, ease of use, UI consistency, etc. Even though I don't like it.
2. Because the OS itself is multitasking, any and all restrictions may be hacked around, and a "jailbreak" will be possible.
Depending on how this whole thing will be implemented, jailbreaking and using "illegal" apps may be a major PITA (think iPhone 3GS/tethered jailbreak) or as easy as a few registry tweaks/installing additional certs/whatever. If Apple didn't chase JB with every update it would be a rather good platform for both mainstream "ordinary" users and those who want rather unusual things from their phones.
We'll have to wait and see how it evolves really to make a final judgment.

Advice please

Greetings all
I'm an XDA veteran, and have had an idea for an application I'd like to develop. I have programming skills, mainly in VB6.
So my question is, what application/language is best/simplest for developing my app on WIndows Mobile? The main criteria I have is that I want to be able to read data from and write data to a remote windows based pc - I'm assuming that I'm going to do that via wifi or bluetooth networking.
I'm "between jobs" at the moment, so looking for a development platform that won't cost me much, if anything. I intend to make my application initially as free/donateware - it's something I need, but may be useful to others, but I don't want the hassle of trying to make it secure, serial numbers etc, for it to end up cracked on a warez site!
So what's the best development tool for PC/Windows Mobile development?
Thanks in advance
TangerineTractor said:
Greetings all
I'm an XDA veteran, and have had an idea for an application I'd like to develop. I have programming skills, mainly in VB6.
So my question is, what application/language is best/simplest for developing my app on WIndows Mobile? The main criteria I have is that I want to be able to read data from and write data to a remote windows based pc - I'm assuming that I'm going to do that via wifi or bluetooth networking.
I'm "between jobs" at the moment, so looking for a development platform that won't cost me much, if anything. I intend to make my application initially as free/donateware - it's something I need, but may be useful to others, but I don't want the hassle of trying to make it secure, serial numbers etc, for it to end up cracked on a warez site!
So what's the best development tool for PC/Windows Mobile development?
Thanks in advance
Click to expand...
Click to collapse
Best is quite subjective
I, personally see it this way:
C# (The language I mainly use) is a powerful, relatively simple one. Maybe equal to VB.net, however I feel that it is a step ahead of that.
C++ Extremely powerful, but hard to use (unless you know how to use it already).
C# will provide you with a lot of pre-built functions that are easy to use, but you compromise some speed and size (more RAM usage generally)...while C++ will require some thinking and referring to many API's , but in doing this you can get a much faster, leaner program.
Since you know VB already, I would either stay with that, or shift to C#...if you want a challenge, go learn C++!
I hope this was of some help...
Thanks. My app will have a PC based management module, which I've just started writing in Visual Basic Express, no Problems. I still need to identify the best platform to write the WM application, which is basically going to read a datafile, display some buttons, and write another datafile...

Desperately Needed

WP7 desperately need a 3g to wifi tethering app like myfi. I used to have an iphone but switched WP7 and now I need a 'myfi' like app badly.
Can someone some building this app ASAP.
at present it's not possible to even build one as there aren't any APIs for it. I'm sure this has been asked quite a few times on this forum already... please search... rather than just continually asking what people deem as a common requirement. also search the pinned threads as they're a good place to start for missing functionality...
There are APIs. Samsung phones can tether so yh APIs are there. WP7 is just CE with some changes/additions. Microsoft just isn't allowing access to the APIs...
Sent from my HD7 using Board Express
I would think that OEMs have a different set of APIs which provide them with native capabilities. I doubt the OEMs are writting their apps in just C# otherwise MS would have released those APIs as well.
also to note, those phones that can tether is done through the diagnostics, which would imply that they should be already in all windows phones and just dormant. i highly doubt it's specific to samsung phones. it may be that we only know how to do it with samsung phones now.
The Gate Keeper said:
I would think that OEMs have a different set of APIs which provide them with native capabilities. I doubt the OEMs are writting their apps in just C# otherwise MS would have released those APIs as well.
Click to expand...
Click to collapse
That's my point. The APIs exist, as does the base Windows CE system.
We just don't have the development tools nor do we have access to that level of the system to be able to write those applications ourselves.
We're limited to sandboxed Silverlight-based applications, but Microsoft and OEMs can use Native Code and APIs we don't have access to.
They exist, we just don't have access to them. Apple does the same thing with iOS.
Thanks for agreeing with me, though
also to note, those phones that can tether is done through the diagnostics, which would imply that they should be already in all windows phones and just dormant. i highly doubt it's specific to samsung phones. it may be that we only know how to do it with samsung phones now.
Click to expand...
Click to collapse
Which also means WP7 supports tethering. The functionality just isn't exposed to users in the general user interface, that is why you have to dig for it. The same thing is true for Sideloading XAPs, among other things.
It's there. The OS is totally capable of it. WP7 did, in fact, inherit a ton of functionality from Windows Mobile. The difference is that the new UI doesn't expose it to the user, and applications (and the system) are managed in a totally different way.
There's a huge difference between "does not exist" and "exists, but functionality is not exposed in the UI."
Windows on a PC can access drives, etc. by device name, but that is not exposed in the UI - for example. The same is true for many features in WP7 that are there by virtue of it being based on CE and tied (although Microsoft would want you to think differently) to Windows Mobile. They just chose not to expose this functionality.
Not saying it's totalyl based on WM, since that's obviously untrue. If that was the case stuff like full Exchange support, Video support for MMS, etc. would be working.
But the fact that this stuff is there and they're dragging their feet to allow users to use it is what's keeping lots of users off of WP7 at the moment. It's taking them too long to make changes that seem too simple... Maybe for the sake of security, I don't know. They haven't really been transparent with early adopters, IMO.
EDIT: Also, you can call Native Code from managed languages (C#, VB.NET, Java, etc.), so I'm pretty sure they are writing their apps in C# and only calling native code/libraries when they need to. Writing it in straight C/C++ is [potentially] more dangerous than using a Managed Language with Interop. I can't see Microsoft going for that.

[REQ] Beginning WP7 Coding - Need some help

I have been coding on WM 6.x and the CE lineup for years. Done it on VB.NET. Now, with the iteration of WP7, I have migrated to the refreshing OS. But, I got the shock of my life when I opened VS2010 WP7 project...
XAML, Binding item, etc. I have never touched them before. Coding for the WM 6 was as easy as Windows Forms. If you get me. I gave up WPF because of the confusing stuff esp XAML. Borrowing a WP7 coding book frm the library didn't help. So now.. If there's any member who's willing to devote a small time to answer some of the coding difficulties (thru PM) as I code along, it will be great. Can't offer you much, though ...
Went through the same thing. I found the documentation on MSDN really useful. Also if you have a look on codeplex there are some samples and apps around that could be useful for you to look over. I would say don't be too scared by XAML its really good once you get used to it.
Also you might want to look at the new mango dev tools as they support developing in vb so you won't have to move to c sharp
arikyeo said:
I have been coding on WM 6.x and the CE lineup for years. Done it on VB.NET. Now, with the iteration of WP7, I have migrated to the refreshing OS. But, I got the shock of my life when I opened VS2010 WP7 project...
XAML, Binding item, etc. I have never touched them before. Coding for the WM 6 was as easy as Windows Forms. If you get me. I gave up WPF because of the confusing stuff esp XAML. Borrowing a WP7 coding book frm the library didn't help. So now.. If there's any member who's willing to devote a small time to answer some of the coding difficulties (thru PM) as I code along, it will be great. Can't offer you much, though ...
Click to expand...
Click to collapse
Same here, although i don't have any programming skills at all.
Any help/advice would be appreciated.
I can understand how going from WinForms to XAML/Silverlight would be a shock.
Strangely, my ASP.NET experience helped me to adapt to XAML - the concept of defining UI declaratively in the markup and having the code in a code-behind file is exactly the same in both.
If you've done any desktop WPF, it's the same concept as well.
In order to adapt from WinForms, think of it this way:
1) the design canvas - works similarly between either WinForms, WPF, Silverlight.
2) the declarative markup - similar in concept to HTML. In WinForms, the auto-generated InitializeComponent () in *.designer.cs is responsible for creating, initializing, and building the UI - in WPF/Silverlight the XAML serves this purpose, but is much easier to modify than the InitializeComponent method (which they tell you you shouldn't be doing).
3) the code behind - In WinForms, you have to open up your WinForms class in the code view, and you can code all the event handlers and whatnot. In WPF/Silverlight, this is in the *.xaml.cs, and is very similar to the WinForms codebehind.
I'd recommend going to create.msdn.com and start going through the tutorials.
Check this site Getting Started with Windows Phone.
http://msdn.microsoft.com/en-us/wp7trainingcourse_wp7gettingstarted_unit
Yes, MSDN, they have a on-line training to get your started, even your first "Hello World" app to try. I figure I will be going this route to get an idea of the tools then go deeper into reading coding just to get the fundamentals down.
It's the only way I could get started...
These videos are helpful
http://channel9.msdn.com/Series/Windows-Phone-7-Development-for-Absolute-Beginners
is there a german version too??
i need German language
styles89 said:
is there a german version too??
i need German language
Click to expand...
Click to collapse
Doesn't look like it, and besides nearly all programming is done in English.
Personally I can't stand using a Norwegian version of Windows, and others can't live without it.

Transition from Android to Web App?

Namaste my fellow developers.
I am a rather young developer, who started off with Android and have developed about 10-15 apps till today out of which 2 are up on Google Play.
Just to increase my knowledge and sector I was planning to make a shift into web apps. I did learn Java specifically for Android but want to get my hands on the other platforms as well. So my questions, Sirs and Madams, are:
1.Technically, How is Android and Web Apps different?
2.Should I make the transition?
3.How do i start? (some resources would be helpful)
All and Every feedback would be appreciated. Thank YOU!
hi karantrehan, my two cents on the matter
1. you can think of a web app as a web site running inside an Android Webview, with all its files (html, images, javascripts, css, ...) bundled inside the app. The enclosing app just launches an Activity with a webview, everything else is done by html and javascript (although you can bind java code to javascript function to exploit Android's APIs).
2. It depends: I think web apps are a viable choice in two situations:
you're a web developer that want to build an app without having to learn Android
you want to build a cross-platform app, reaching Android, iOS, WP without learning every single language
Otherwise, I would not advise it, I don't see particular advantages... unless you want to learn something new!
3. for the Android integration part, take a look here: developer.android.com/guide/webapps/webview.html
For the html/css/js part.... well, web development is as old as the web itself, there are tons of guides out there Don't miss some helpful projects like jQuery Mobile.
karantrehan said:
Namaste my fellow developers.
I am a rather young developer, who started off with Android and have developed about 10-15 apps till today out of which 2 are up on Google Play.
Just to increase my knowledge and sector I was planning to make a shift into web apps. I did learn Java specifically for Android but want to get my hands on the other platforms as well. So my questions, Sirs and Madams, are:
1.Technically, How is Android and Web Apps different?
2.Should I make the transition?
3.How do i start? (some resources would be helpful)
All and Every feedback would be appreciated. Thank YOU!
Click to expand...
Click to collapse
1. Web Apps are made using multiple languages. Front-side/Client-side, they are developed in HTML, CSS, and JavaScript. Out of the three, JavaScript is the only programming language. HTML is a markup language, and CSS is used for UI and UX. You could also use the Dart language. Dart is a new client-side language developed by Google. Currently, however, no major browser supports it (not even Google Chrome), and so in the end, it gets compiled into JavaScript.
Server-side (backend), there are a multitude of programming languages you could use. Java (through JSP), PHP, Ruby on Rails, Python. Typically you're using PHP and SQL for anything in regards to a database.
Web Apps can be hosted in a browser, or you can submit them into App Stores using things like Apache Cordava.
2. As a developer of any sort, you should always improve and learn new languages. Its better for marketability, improves your skillset, and overall can make you a better developer. So, in the end, the choice is up to you. I would highly recommend you to do so.
3. There are tons of resources available. You can search for tutorials on google or youtube. When I got started, I used w3schools to learn HTML, CSS, and PHP. I would really recommend using YouTube as well if you are a visual learner like me.
1. Like reProgrammed said, web apps are a bit different in that there's a couple of layers to them as opposed to Android apps. The back-end logic that does your database fetches and such is programmed in PHP, Python, ASP.NET (C#/VB.NET), etc. The front-end website, the pages and stuff you interact with, are done with primarily (X)HTML, CSS, and JavaScript. And for databases you've got SQL Server or MySQL, mainly.
2. Absolutely. I'm a developer myself, professionally and as a hobby, and it's never a bad idea to learn a new language or framework or environment. It'll make you a better developer and can get you jobs, or foot in the door, if that's your profession.
3. I don't really have many resources. However, in the past I've used:
W3Schools
MSDN (for C#)
Stack Overflow
Google
And then there's always books. They can get outdated but they can be great resources. I still sometimes refer to my "Android for Dummies" book when I'm working on my Android app, even though I Google search more often. Hope that helps.

Categories

Resources