I am looking for a way to track the navigation process of my users, as well as the number of clicks/user for each view, average screen time per/day/user, and so on.
I know I can do this programmatically but it doesn't seem like the ideal solution.
Is there any software that covers all of this?
Visual Studio App Center provides multiple useful tools. It offers real-time diagnostic data, tracking of usage patterns, user adoption and a lot more engagement metrics with App Center Analytics. You can even use custom events to get the exact user behaviors you are looking for.
I've been using it for a while and so far i'm satisfied.
AppCenter is the easiest to integrate with, it also allows you to export the data to ApplicationInsights on azure to do more with that data. There are some other options like Google Analytics (You have to install nugets on platform projects and implement them separately). You also have segment If you are interested.
Related
We have an existing cross-platform Mobile Application, that also has an accompanying web application, that uses AWS as a back end (RDS for Database, Four server instances, and a Load Balancer to distribute traffic). APK and IPA files are packaged and sent to the stores, while components are retrieved from our server per request, which enables us to reduce the number of store builds, and make the process easier for getting changes out to clients.
We are at the stage of Development that we need to move to another platform to better facilitate our fast growing client base.
Due to the conditions upon our clients, these things must be considered.
must be cross platform (Android / iOS).
must be offline based (users need to be able to access without an internet connection)
must be able to sync with an existing database when there is a connection
requires Authentication
Cloud based (? may not be the right term, but meaning the ability for us to store components on a server and have a device check for updates and download a local copy - enabling us to work and distribute fixes faster)
Ideally compatible with AWS
We are currently looking at Xamarin to facilitate us for this move, however there is a lot of documentation and plugins out there to do all sorts of different things.
As developers, we all have some .net / c# experience, however none particularly with Xamarin.
We have a particular timeline that we need to adhere to (and need to ramp up in the next couple of weeks), and right now are essentially stuck in Limbo in a research phase, as we can't afford to get some things right. We are unable to move forward until we know Xamarin (or some other framework) is able to do everything that we need it to do.
It's hard to escape from the 'code it all ourselves' mentality - especially as we don't know where to start looking in terms of third party packages for Xamarin, and their documentation itself.
A lot of documentation mentions various systems of Azure - we would not be against moving to Azure over AWS if it _had to be done*, but because of the existing infrastructure with AWS - staying with AWS is obviously the preferred option (users need to access the current system whilst we build the new system)
This stack overflow post is to ask for recommendations, comments, or other observations on anything and everything involved with the process in regards to choosing frameworks, design patterns, methodologies, third party packages, etc.
Obviously we would like to use best practises for everything moving forward for optimum scalability and cleaner, more robust code. It's just hard to know where to start!
Any input will be highly appreciated.
Cheers!
edit: I am aware that this is 'asking for recommendations' which is 'specifically off-topic'. I have read the posting guidelines about open ended discussion, and am quite confident that this case is different. There is an underlying problem here, in that we are seeking advice on combinations of frameworks and plugins that are fully compatible with all of the items in the list (above)
Let's try to breakdown each of your requirement and constraint mentioned in the question.
1. You need a offline first architecture (With Sync mechanism)
Xamarin + Azure would make a good comdo for you, as it would support offline storage out of box (With a simple PullAsync call).
Albeit there are AWS SDK available for Xamarin. Here it goes http://docs.aws.amazon.com/mobile/sdkforxamarin/developerguide/setup.html
So the call is yours. There are few other ways to achieve caching offline storage in Xamarin, you can build upon those strategy in your logic. Alternatively there is a very interesting C# library Akavache for caching and offline storage.
2. OAuth 2.0 Authentication
Xamarin has a very good library named Xamarin.Auth. Though I would not say it is very easily extendible at this but there has been some serious work going on from Xamarin on this library.
But I would say it is very easy to use. The apps I have developed so far that includes - Google OAuth, Facebook integration, Microsoft account integration. It worked fine for all of them.
3. Cloud based distribution
There are nice tools available with Microsoft. Which makes the distribution easy. Have a look at https://mobile.azure.com . Also hockeyApp is good for distribution I found.
Where to start:
A very good starting point for you would be https://channel9.msdn.com . Just go there search with keyword "Xamarin" and view some videos. May be all these cross platform dynamics will be much easier for you.
Overall I found Xamarin a cool product to work with. Because anything that can be done in native Objective C/Swift or Java can very well be done in Xamarin using C#.
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.
I'm trying to figure out a way to create a real-time chatting app with Xamarin and some kind of backend technology. How can I do it?
I have a better solution. The above-mentioned technologies(buddy SDK & SignalR) will require you to integrate and handle everything by your self. Instead, you can go for CometChat SDK, which has real-time chat along with Audio/Video chat functionalities. Also, you can use its ready-made UI inside your application. It is the easiest & quickest way for you to make a real-time chatting system. For more information on CometChat you can refer to the following link:
https://developer.cometchat.com/docs/xamarin-forms-quick-start
As mentioned by ChristiaanV, SignalR is the way to go.
The Performance is great with Xamarin, we delivered more than 150k messages within 2 hours without any problems regarding the connection.
With Azure Mobile App and ServiceBus, you can easily scale out your backend, as described here http://www.asp.net/signalr/overview/performance/scaleout-with-windows-azure-service-bus
Have a look at SignalR, it's a good and easy to use framework to do realtime 'things'. They also have a Xamarin Component which is free to use.
https://github.com/SignalR/SignalR
http://components.xamarin.com/view/signalr
Please note that I personally don't have experience with using it on mobile devices, so I can't tell you anything about how it's performing battery / performance wise.
I got lots of simple apps or examples that are built using Fabric.js.
Can I use Fabric.js for making advanced applications? I want to check some apps and see it's performance so that I would confirm that Fabric.js can handle big apps too.
We built Fabric specifically to power design editor on Printio.ru. It's used by 1000+ visitors daily.
From other big sites there's easel.ly — visual themes creation tool. Also mywallsticker.de, scrollkit.com, and others.
Large sites that using FabricJS are listed here https://github.com/kangax/fabric.js/wiki/Who%27s-using-Fabric
http://printio.ru/ is the one of best one, what kind of advance apps you are looking for ?
check out the discussion on google groups
https://groups.google.com/forum/?fromgroups#!forum/fabricjs
you will get some idea
I am not too sure if this question is suited for this forum. If not, please let me know and I'll delete this.
I wanted to figure out the "easiest" way of keeping online score for a game or quiz on Windows Phone 7. Currently, I am not looking for things like Achievements etc. I know XBOX live provides a lot of stuff on these grounds, but it is not open for all.
I want to submit the score, and maintain the top 200 (may be less) odd scores. I am too lazy to write my own services and host it and go through the full maintenance cycle for that scoring system. Can someone point out some really good and easy to use + reliable services that I can use?
The product offered by Mogade has a lot of the features you have asked for:
Real time stats
Achievements
Logging
Javascript leaderboards & Facebook pages
Always free
No branding requirements
It's a very streamlined library where you only need to set up the bare essentials to get it working as all of the heavy lifting is managed for you automatically, allowing you to focus more time on the development of your game.
briansoli has written a fairly straightforward tutorial on how to get a leaderboard working with in a Windows Phone 7 game.
I hope you find this useful, let us know how you get on with it!
Microosft have just released a new toolkit called the Windows Azure Toolkit for Social Games. This should help you out with quite a bit.
Have a look at this Cloud Cover Show, Episode 52 - Tankster and the Windows Azure Toolkit for Social Games
The toolkit enables unique capabilities for social gaming prerequisites, such as storing user profiles, maintaining leader boards, in-app purchasing, and more. The toolkit also comes complete with reusable server side code and documentation, as well as Tankster, a new proof-of-concept game built with HTML5