Which architecture pattern is suitable for Xamarin android development? - mvvm

I'm new in Xamarin development. can you suggest which architecture pattern use for development. just like MVVM,MVP,MVC, etc.

I will now go with MVP considering the asynchronous nature of mobile applications. Check a discussion here https://blog.kloud.com.au/2018/01/17/xamarin-application-architecture/

Xamarin.Forms was designed with MVVM in mind. As for the Platform specific MVVM or passive view both work well.

Related

Cross-platform mobile app & RESTful web service & scoring algorithms - architecture & technologies

I am planning to create a cross-platform mobile app that has native-like versions for most mobile platforms, maybe Windows Phone, Android, iOS. It's supposed to store data in DB on server, and the mobile app is mostly for visualizing that (numerical) data.
Basic usage scenario
User opens the app
App data is refreshed via internet connection
User inputs new data
New data is sent to server, handled and DB updated
User's app data is updated according to DB data (ANIMATION!)
User updates settings on his app that alters it's behaviour.
I'm a noob when it comes to designing and programming mobile apps + web services alone, so I'm hoping you could help me with the following questions. Technologies I'm most familiar with: Java EE, Python, HTML/CSS/JS, MySQL, Graphics. Maybe I should go for PhoneGap? Thanks a lot!
1) What cross-platform mobile technology you would recommend?
2) What kind of solution would be most suitable for server/app server? (Estimated code lines < 5000)
3) What's a good place to start learning scoring algorithms?
Please respond if you have answers to any of the questions asked.
EDIT: found a similar question: Cross-Platform Mobile Application Solution
#thevangelist: It's a very good question you have raised, all mobile developers face the same problem when we start writing an app. Today there are multiple Open Source Frameworks available in market which are trying to solve the same problem but in different manner.
Based on my research and experience, I would like to recommend below technologies which we can consider while building an mobile apps.
View: View is an important part of any mobile apps. When we start building UI/UX we also have consider it's platform design principles. Looking these points I would like to recommend React Native for the same.
React Native: It is a Facebook, and Instagram developed JavaScript library used in creating native mobile applications. It allows us to write iOS and Android applications using JSX, a known HTML look-a-like code, and JavaScript. It is based on “Learn once, write anywhere” methodology.
Pros
Renders native views with a native behavior and interaction … you’ll end up with a real native application
Has a paradigm of “Learn once, write anywhere” where developers only need React and JavaScript to create better application for Andoroid, iOS.
Uses native architecture and concept
It does not require a WebView
CSS Flexbox is used for layout design
Cons
Code abstraction leads to bugs and memory leaks
Cannot work without the API, which is provided by React Native, technically there’s no fallback like with classic hybrid mobile apps
When creating proper native applications, a developer will have more power and control regarding performance tuning
React Native is still a new framework so we can’t predict possible problems and downsides
These cons are somewhat negligible, especially if we consider that React Native is empowering more and more native applications with each passing day.
Data in Transit: If your app sync data from web services, then there are multiple frameworks available in the market to make our job easier. Please find below some of the most popular JavaScript RESTful Frameworks:
ACTIONHERO, StrongLoop
Data at Rest: You would also be needing offline storage for the sync data. Since we do not have direct support for native SQLite in JavaScript, we need to use some of the React Native SQLite Plugins. Please find below plugins which are available in the market:
almost, andpor, jbrodriguez, ramsundark5, remobile
For Data at Transit/Data at Rest, I would like to recommend Siminov Framework which is available on all the major platforms (Android, iOS, Windows). It also supports hybrid technologies such as React Native, Cordova, Xamarin.
Pros
Available on all the major platforms (Android, iOS and Windows)
Easy to configure, it provides standard xml based structure using we can easily configure our app database
It allows developers to bind ORM with remote RESTFul web services too
Also have support for SQLCipher on all the platforms
Cons
Lack of community: Recently they have launched their products on all the major platforms, not many people are using it.
Since the configuration is based on XML structure which looks pretty old to me. But based on their documentation it was done to support all the major platforms
Algorithm: I have found this link nurlybayevaAMS9 related to algorithm, hope this may help you.
Try avoid writing cross platform application. It is doable using HTML5+jQuery. But you can never get the same look and feel as native app. secondly windows, ios and android have their own look and feel and will come up with their own elements. You can never cater to all three having same code base. Better is to code using native sdks.
1) Never used PhoneGap, although aware of it, but don't forget to consider a simple HTML5 application. If possible, this would save you lots of work and maximize compatibility.
2) You can develop great RESTful webservices with both Java EE (see JAX-RS/Spring) and Python (see django). The choice is really more a matter of personal taste.

Ruby on Rails Iphone development

I've been digging around for this one. I understand that there two possible ways to develop for the iPhone.
via web kit frameworks, such as jqtouch and iwebkit, and
using the iPhone's api
I notice quite a few people using web kit frameworks, especially jqtouch. What are the benefits of using a webkit framework versus using the iPhone's api directly?
One point that springs into mind, is the fact that using a web kit framework makes it accessible through other smart phones? Not just the iPhone?
Are there any differences in terms of graphic enhancements? i.e. will transitions or animation look different?
I am a web developer by heart. It will be an advantage if I can develop an iPhone app with knowledge that I already know, that being the Ruby on Rails web framework.
I have also read this slideshow, which seems pretty detailed on various web kits.
Your suggestions / feedback is appreciated.
Just came across the following by Oreilly which seems to answer a good detail of differences between a native and web app development for the iPhone.

Best iPhone/iOS framework for Presentation Apps

Which framework do you suggest for building an application to manage presentation, like an interactive and multimedia brochure?
Do you think the iOS is enough?
Additional to the previously mentioned great Corona, you can have a look at the HTML-JavaScript-CSS-based PhoneGap. It is good if your application can be considered "page based" (you can still do animations with it, I did most of the games at VersusPad.com using it).

Any idea how to write code that can be easily ported to iphone, android and blackberry?

I'm looking for a way to easily port content driven applications from one mobile platform to another. Currently HTML5+js seems to be the only language that can be easily reused.
Can you share your experience? I'm looking for a way to go forward.
Have you taken a look at Titanium Mobile?
http://www.appcelerator.com/products/titanium-mobile-application-development/
You can build apps for iPhone/iPad & Android using JavaScript - doesn't support blackberry (yet), though.
You are right. HTML5+CSS+JavaScript is a viable and recommended solution for cross-platform mobile apps. If you're already familiar with these technologies there is no reason for you to learn a new one (such as Titanium Mobile as was suggested by someone else).

How to imitate the native iPhone look and feel in a web app developed with the ASP.NET platform?

I'm planning to develop a web application that targets the iPhone. I will use APT.NET to develop the application. I will probably use ASP.NET MVC.
I'm researching how I will imitate the native iPhone look and feel in my web application. I'm looking for an approach that will be easy to use with the ASP.NET platform.
So far, I found iUI (code.google.com/p/iui/). iUI a collection of CSS stylesheets and javascripts to imitate the native iPhone look and feel. I'm not sure yet how easy it is to integrate with ASP.NET as most samples are static html.
What are good ways to imitate the native iPhone look and feel in a web app developed with the ASP.NET platform?
Regards,
Syl
I just want to let you know that I also found http://iwebkit.net/. I will test it in the upcoming days.
If you have other suggestions, I will greatly appreciate.
Thanks
Take a look at these:
Rock the iPhone with ASP.NET MVC
Create iPhone Applications using ASP.NET AJAX
The server-side platform you use is irrelevant to the front-end look and feel, it is the same techniques on any platform.
I have also used the iUI framework with great success, using a Django backend. The front-end is determined purely by the HTML, CSS and JavaScript that you serve up, which is independant of the server-side code.
ASP.NET MVC gives you a lot more control over your markup than plain-old WebForms, so it should be ideal for this.
I'm the OP. I'm updating this question with a new answer:
jquerymobile