Best way to approach WP7 app development? - windows-phone-7

I have some knowledge of basic PHP developing however right now I am thinking about developing a phone app. I do however have a bit of a conundrum in that I love WP7 and I have so many ideas for features which can't be done on iOS and Android, however at the same time I am completely aware that my target users (filmmakers) generally have iOS or android phones.
Is there a way I can develop the app, which I will get a developer to do rather than myself, with WP7 as the lead platform and then make a relatively simple conversion to the other platforms or do apps generally have to be completely reworked for each platform?
Also, just to though it out there, any idea of where to go to find a freelance app developer?
Thanks
James

I think you have a few options, but the first question I would have is: where comes the data from. Are you the owner of the data, and do you already have a datasource from where you can get the data from? If not I would suggest take some time to write a decent 'backend' from which the different platforms easily can get the data from.
Also all different platforms have their own pro/cons which you cannot share that easily. If you build a WP7 app in silverlight/xna, you cannot directly port it to a ios/android variant, also functionality will probably look/react different. You will need different solutions foreach platform with this approach.
Another option would be to use an platform like phonegap which can create a solution that will work on multiple platforms. (It uses HTML5 to get it work on the different platforms)

Build your app on iOS and android first, and when you have an app to base WP7 development then contact a developer that has made similar apps to yours.

Related

Struggling to find good Examples of iOS app clip & Android instant Apps

I've searched for examples of iOS app clip & Android instant Apps but could not find more than few examples.
I am looking for released apps in App Store/Google Play or open source examples.
good examples could make developing these new features easier and gives developers new creative ideas to use these wonderful tools.
Do you have an app that utilizes App clip or instant app?
How did this affect your app?
What is the challenges you have faced?
Note: I know this is not a typical question but it need to be asked in a community full of great developers who love to share knowledge with others, and I don't think there is a better place than here.
Intro
I know it's been 10 months since you posted the question but I just stumbled upon it now... I've developed an app called ARShades for both iOS and Android that allows the user to try glasses on via Augmented Reality and I'm still in charge of development. The app supports both Instant App and App Clip, although I'm facing troubles making the the app banner show for the App Clip.
Firebase issues
As far as I can tell developing App Clips is a tad harder than develeloping Instant Apps, I'll tell you why. The main apps for both systems make extensive use of Firebase Firestore and many other features. This isn't a problem on Android where sockets are supported across the board, while on iOS they are only supported in the main app, so I had to use REST API to read and write data on Firebase when developing the App Clip, it's been a nightmare since it was the first time for me dealing with REST APIs (I just finished yesterday and published the update).
App Size
Another issue I faced is related to reducing the app size. On Android I had to remove all the unused images and compress the remamining ones. On iOS I had to separate the asset catalogues between: used only by the main app, shared, and used only by app clip. And of course I went through some compression works there too. I forgot to mention that I developed a new app as Instant App on Android, while you cannot do the same on iOS since it must be in the same project.
App to site linking
Another insidious part was the linking of the site to the apps. I managed to do it on Android by making changes to the manifest and specifying the host, while I can't seem to find a way to link the App Clip to the site in ay way. I've done everything the documentation says. I've put the apple app site association file in the .well-known folder but nothing, no banner shows up. I'll keep working on that.
Edit: Everything is now solved.
Conclusions
So, to sum up, I've found Instant Apps better on the developing and hassle side of things, the support sockets, hence the full suite of frameworks the full apps have. I hope I kind of answered your question, although I think you have documented yorself elsewhere in these past 10 months XD
Links to Android: https://play.google.com/store/apps/details?id=it.spaarkly.arshades&hl=en_US&gl=US
Link to iOS: https://apps.apple.com/us/app/arshades-demo/id1586661818
Link for trying Instant App / App Clip

Xamarin C# and Mobile Platforms

I started Xamarin and I'm beginner. Since there is no documentation about Xamarin, when I have crash I can't find solution.
Anyway, I want to ask some question to you.
There are 2 choices: you can either use only Xamarin code with C# and this code yields to work with Android, IOS and Win Phone, or you can use separate code for Android, IOS and Win Phones. Is this information true or false? (I don't know I am exactly true.)
When I create a .xaml file with C# to yield Android, IOS and Win Phones, how can I use native pages, libraries (ex: SharedPreference). For example, I have a .xaml page and I want to navigate to an Android.Activity page - is this possible?
Thank you for your responses.
Your best friend for bugs and errors is google and stackoverflow. You can find almost everything as xamarin started to grow a lot after microsoft's acquisition.
You can either choose a unified solution like a PCL (Shared or Portable) or seperate projects.All of them are written in C# because that is what Xamarin is doing.
I don't think you have the ability to do that, but i am not sure.
You must do your research in order to find which way of coding is appropriate for your application. If you want to build something very unique with complex ui in each platform, you would probably choose separate projects. Else you can use xamarin forms to have a unique UI across all of your projects.

Xamarin Sample Apps for iPad and iPhone?

I wonder why none of the Xamarin Prebuilt Apps at https://www.xamarin.com/prebuilt support both iPad and iPhone? They all have the same design on each resolution. Especially Apps like 'Acquaint' would be perfect on iPad to have the contact list on the left and the details on the right. But instead it just has the same design like the iPhone Version.....
Are there any reasons why Xamarin does not offer samples with different designs depending on the client resolution? Are there somewhere else some examples?
Many thanks!
You might want to take a look at our Creating Mobile Apps with Xamarin.Forms Book First Edition by Charles Petzold.
I work on the same team as Charles and I know it's a topic he's covered in detail. The full book should be available soon too.
BTW, we are looking into creating some detailed, annotated cross-platform app samples that do all the goodies that a typical modern app would be expected to have.
I do not know of any of the stock Xamarin examples that use OnIdiom, but it just a matter of time to code them...hahahah, always just a matter of time and code. (I'm sure the Xamarin guys can chime in on this one):
Xamarin.Forms.OnIdiom Class
<OnIdiom.Phone>Vertical</OnIdiom.Phone>
<OnIdiom.Tablet>Horizontal</OnIdiom.Tablet>
In terms of finding examples that use the Xamarin.Forms XAML OnIdiom I would search Github for OnIdiom, there a few OSS examples of phone/tablet switching floating around there as I used at least one as a template to do a quick phone/tablet prototype for a client.

Xamarin cross-platform user experience vs. native development

I am trying to evaluate whether Xamarin would be a good option for my project. The project is a large, complex app for Android and iOS with a lot of client-server communication. The user interface is a major focus and has to be really fast and smooth. Also, we plan to make large use of UX graphic effects (comparable to the Spotify app).
For now we are planning to go for two separate native apps using Java/Objective-C. However, the possibility of cross-platform code sharing would be very convenient for us of course.
Most opinions I've heard so far say that Xamarin - although far better than HTML5 apps - cannot match the UX of a native app. Also, I tested the following applications made with Xamarin (on Android):
Rdio
MarketWatch
Busch Gardens Discovery Guide
Sqor
Storyo
From my impression, none of them could quite match the speed and smoothness of a good native app.
If our focus is on a top notch user experience, would Xamarin really be a viable option? Can it really match a native UX? I am particularly looking for opinions from developers who have experience with large and complex cross-platform Xamarin applications. A few critical voices would be very helpful.
Thank you a lot!
I'm on the Rdio mobile development team, so I can make some personal reflections from that standpoint.
Xamarin allows you to write native applications in C#. Any slowness, jankiness, ugliness or bad-appiness usually has nothing to do with the Xamarin layer itself.
You save some time being able to share core business logic between your different clients, but you're still writing the UI from scratch, specific to the platform. You're just writing it in C#.
But while you save that time, you're spending it in other ways. All of those SDKs you want to use probably aren't compatible with Xamarin out of the box. You won't be pod install'ing that iOS framework, and you might be reinventing the wheel for handfuls of things. Xamarin takes advantage of the NuGet repo so you have a library of components that handle many of the things most people need (Analytics, Testing, Facebook SDK, JSON parsing, Database, etc etc) but it doesn't cover everything. And it certainly doesn't cover stuff that's out the day of an Apple or Google product announcement.
Any 3rd party code that you do want to import into your project will be done through writing custom bindings. While not usually difficult, it is time consuming. Xamarin has a team of people that specialize in assisting you in this. This fact speaks to the process being messy at times.
So while the slowness, jankiness, ugliness or bad-appiness probably isn't the fault of Xamarin, it might be the fault of you spending time in places you normally wouldn't, or not being able to take advantage of features you normally would. If that 3rd party partner SDK is giving you problems, your troubleshooting may take twice as long because there's a layer that you don't control.
UI is a wash. You're writing it from scratch anyway.
Business logic is shared. Depending on the app that might be a win if you architect your application to take advantage of it.
Compatibility / bleeding edge ability will be lacking. That might not matter to you at all, or you might be the person wanting to take advantage of that hot new API in the next OS release the day it's announced.
My personal thought, without knowing specifics, is if you want to build an application that you plan on being around years from now, and that will take advantage of the latest and greatest, I'd tell you to write natively for each platform. Unless you can really see huge gains in sharing that business logic the upfront gains are minimal. Or if you really like C#.
Xamarin uses native controls. So you design a fully native UI per platform. The users can't see that your App is made with Xamarin or Java/Objective-C.
There are sometimes performance issues in conjunction with the platform independent UI wrapper Xamarin.Forms. But you're not forced to use it. When you have still performance issues in your Xamarin.Android or Xamarin.iOS app then you produce them in your code.
There are benchmark results for Android apps comparing Xamarin.Android and Java apps: Does anyone have benchmarks (code & results) comparing performance of Android apps written in Xamarin C# and Java?
As you can see Xamarin's internal performance became better and better over the time.
Conclusion: Yes, you can write smooth native Apps using Xamarin.

Auto-update with Windows Phone 7 and PhoneGap

I'm thinking of developing a Windows Phone 7 application using PhoneGap and have a few questions around functionality available. I haven't developed a WP7 application before nor used PhoneGap so forgive me if some of the answers to these questions are obvious.
Does PhoneGap support the capability to update HTML/JS/CSS/Images hosted by the WP7 app? I imagine it's possible to easily download new content, but whether one can update or extend the existing files PhoneGap is using for the application is not clear. Given that the application functionality will be primarily driven by HTML/JS, I assume it's possible to download updated HTML/JS asynchronously and update the content on the device. In effect, this would be tantamount to updating the application without downloading a new version of the application through the MarketPlace. Assuming this is possible, what are the chances that an application which does this will pass the application verification process?
Are there any specific restrictions/guidelines that one should pay more attention to when developing an application using PhoneGap? I doubt there are but it would be helpful if anyone has any specific advice in this area.
Any help would be appreciated.
1) The short answer is yes.
The long answer is that you will need to do some native (in this case C#) dev to make that happen. I don't know the specifics of PhoneGap, but I know you can call C# methods from the JS. So you would call a method to download the data and store it in the IsolatedStorage, and then maybe have a callback to the JS to let it know it's done. Otherwise, there may be a way to download the image in JS and pass it to the code behind, but unless the PhoneGap guys have specifically catered for this scenario then I highly highly doubt it.
1.2) Yes, this will pass cert just fine. It is not up to MS to determine how/why/when/where you get your content. They don't make any money out of you updating an app, so they won't care whether you work out your own content delivery system.
2) Maybe not exactly the answer you are looking for - but if you make an app in PhoneGap, or any other non-native way, the app-gods will strike you down. To put it simpler, PhoneGap and everything like it is crap. Not the actual framework (I'm sure they put a lot of work into it), but the results. Seriously, the moment you run a non-native app you can tell how terrible it is. I don't know how to stress this enough. It's really worth developing it natively to every platform.

Resources