iOS and Android Code Comparison - android

I have trouble finding the apt title for this question, but basically I was wondering if anyone in the community can recommend me a resource that compares similar aspects of iOS programming with Android. The reason being, is that I am currently an iOS developer, and it will help in my learning of Android faster if I can understand similar conventions in Android.
For example, I have realized that Activity in Android works very similarly to View Controllers in iOS. Another example would be onCreate in Android seems to work similarly to viewDidLoad in iOS.
Are there any websites that provides this comparison? I've search extensively on Google but only found generic search results pertaining to the competition between the rival platforms.
I apologize in advance if this is the wrong community to post this question.

This book might help:
Migrating to Android for iOS Developers
Though I haven't read it myself, and it is still in alpha.

Related

Xamarin performance issues

I am new to Xamarin and would love to build our Android mobile solution with Xamarin, given our .NET expertise. I am interested to know if there are any performance issues or limitations we should be aware off, before we dive deeper. There are a lot of comparison for native (Java/Kotlin) development with ReactNative, Ionic etc, but not much with Xamarin, specially for Android.
This question does not really has a specific answer, it is a subject to debate. To answer it briefly, there is no important limitations to using Xamarin for mobile apps. It has advantages and drawbacks, and the best way to learn the is to try it.
Since Xamarin is very close to the native platforms, you won't lack any hardware access, which is a good point for a mobile framework.
In terms of performances, this article gives valuable input, like several interesting benchmarks opposing Xamarin and the native solutions.
The same site also has another article givin more details on how to chose one or another.
From my point of view, Xamarin is a safe solution. We've been using it for 3 years now for various customers, some of them asking for very specific designs, and we never had any issue with it. It is more a matter of personal preference.
There is already a question similiar too your's, see the next link:
Does anyone have benchmarks (code & results) comparing performance of Android apps written in Xamarin C# and Java?

React-Native cross-platform example write once and use anywhere or DRY?

I am very new to React-Native and love it so far. Really great technology and very impressive tooling. I would like to propose it for use in my company.
However ... react-native examples demoing code-sharing btw Android and IOS platform are simply nowhere to find??? All I have found after 3-4 weeks looking into it is few excellent but only IOS examples. Below, are just few examples of articles lacking this. Although some of them claim in their title to cover both, they cover only IOS:
https://www.raywenderlich.com/165140/react-native-tutorial-building-ios-android-apps-javascript
https://mentormate.com/blog/react-native-components/
http://www.andevcon.com/news/take-a-crack-at-react-native-with-kyle-banks
https://appendto.com/2016/11/build-a-coffee-finder-app-with-react-native-and-the-yelp-api/
https://reactjs.co/react-native-convention/
https://www.lullabot.com/articles/build-native-ios-and-android-apps-with-react-native
https://code.facebook.com/posts/1189117404435352/react-native-for-android-how-we-built-the-first-cross-platform-react-native-app/
https://medium.com/#MentorMate/best-practices-for-building-an-app-with-react-native-components-7dee3b2b010f
https://code.tutsplus.com/tutorials/creating-a-dictionary-app-using-react-native-for-android--cms-24969
http://facebook.github.io/react-native/docs/tutorial.html
... , this list could continue on and on but it should be enough to demonstrate the lack of good resources I'm talking about.
I understand react-native is cross platform in terms that you can write code for both Android and IOS, that is all clear and great.
But is it sharing the code? In other words, is it DRY? From what I see, it is write once for each platform rather than write once for all platforms. Again, I understand some Views (but not all) are platform specific but again, there is no example to show even that on both Android and IOS in the same project.
Where is a non-hello-world (real life) example to clearly demonstrates and teaches how to do that? React native used to have it in version 0.20 or so but it was removed and replaced with a HelloWorld example? Seriously #Facebook???
As per links above, lots of React-Native articles out-there are titled to cover both platforms but then they only talk about IOS without even mentioning any other platform? Very few talk about Android only, again, not even touching other platform in the same project. ... and lots of them are outdated!
I understand that the technology is very new (and very good from what I have seen so far, I really love it).
But assuming I have to propose React-Native as a next-gen platform to a company, I do not see any convincing cross-platform, code-sharing examples demoing this for both Android, IOS (UWP??) that I could help me learn, understand, build, and demo an example for that proposal.
I am not looking for chatty comments or links to courses but rather examples to show how to do this in more than just CRNA generated HelloWorld app.
Found the answer here https://www.codementor.io/vijayst/build-react-native-retrofitting-ios-app-to-android-gsf5uyl1q in the very 1st paragraph and it is exactly what I have been trying to get RN/Facebook answer but they ignored the question all the time.
Very disappointing!
So, ReactNative is not "build-once-use-everywhere" but rather "learn-once-use-everywhere" meaning lots of code duplication. And by everywhere, they mostly mean Android and IOS although the examples out-there are mainly IOS. If they cover both platforms, then it is with almost no code sharing but lots of code-duplication.
Although, RN claims they can achieve up to 90% of code sharing, that is not demonstrated anywhere that I could find. Documentation is very shallow in touching anything let alone topic of code-sharing and the tutorial provided by RN is a HelloWorld, ... yes, seriously. Sad! Although they used to have a better tutorial in older version (like 0.20 or so).
In terms of recommending RN to a company as a next-gen platform, I see few issues
concerning patent license, no answers no explanations, very obscure and concerning for a company that would consider moving to this, I'd rather say open-source under quotation marks. Hopefully this will change as I see it as a mayor showstopper for anyone considering adapting this technology. I would say this is no more applicable as FB made react-native licensed using MIT as per https://github.com/facebook/react-native/issues/16079
documentation that is very basic without giving depth of explanation. For example, this is react-native site with demo sample to demonstrate code-sharing cross-platform nature (I warn you, it is a HelloWorld example) https://facebook.github.io/react-native/docs/tutorial.html
React Native Community facebook page which is the page where you are supposed to find help and ask question as per react-native site will simply block you if you bring this topic on and will not let you in
even here on SO, questions like this (after extremely thorough and time consuming research) will earn you only downgrades and zero answers or even attempts
examples lack clarity and depth of explanation, it seem like whole community follow one pattern, copy / paste demonstrating code-duplication rather than code-sharing
Most examples cover (to most basic extent) only IOS although most claim cross-platform nature on both Android and IOS with Android being mentioned in the title only and the body covering only IOS
Impossible to ask for help on react-native site
Impossible to suggest improvement on react-native site other than create pull request. In other words, they want you to work for them for free
The framework is cross-platform, that is great but it is more of a copy/paste (copy from IOS into Android, then modify what needs modification) rather than code-sharing strategy. Every example I was able to find and it took me a month, was a violation of DRY principle in its best form
Although I mentioned things that bothered me at most during my research, I have to say that I hope this technology will thrive and become clear open source platform in future. I really like it and hope someone at #Facebook / #ReactNative will consider these suggestions, or at least provide improvements in the documentation, examples, access to community, place to ask questions and get help, clear licensing, ... all of which I was not able to get after spending a month researching RN.
Perhaps the technology is still not mature enough, which makes sense, it is very new.
Would I recommend it?
To developers yes, definitely. I really like it myself and will spend more time studying it.
To a company? Not really for the reason explained above.
UPDATES - Getting Better :):
... and to add my 2c to anyone who faced the same problem and contribute to community (at least in terms of finding tutorials that talk about both IOS and Android), I will keep posting links I have managed to find so far:
https://differential.com/insights/sharing-code-between-android-and-ios-in-react-native/ is very basic example. Not really code sharing but rather code duplication but at least something
https://www.codementor.io/vijayst/build-react-native-retrofitting-ios-app-to-android-gsf5uyl1q, also more of a code copying rather than code sharing but hey... going somewhere
https://hackernoon.com/getting-started-with-react-navigation-the-navigation-solution-for-react-native-ea3f4bd786a4 another good one
This document explains that RN philosophy is "learn once, write anywhere" rather than "write once, run anywhere" http://makeitopen.com/tutorials/building-the-f8-app/design/

business processes Framework (Xamarin or ReactJS)

maybe someone can help me. In near future i'm going to develop a business processes application like this :
https://play.google.com/store/apps/details?id=de.semture.cubetto
https://play.google.com/store/apps/details?id=com.showgen.processcraft
Now i would like to know if there are some already existing Frameworks or projects for that. I just want play arount with that subject to get a feeling how it works and what i have to do. I'm planing to make it available for Android (highest priority) and Web (Ios and windows arent so important right now).
So my first question is. Are there any Frameworks, libs, project availbe for something like that?
I've already searched for some frameworks but without no success...
And the other question would be what Tool or language should i use ?
Currently i'm working with Visual Studios 2015 Xamarin (xml & C# based language). We all know that i can make crossplattform apps with xamarin. But some minutes ago i've heard that there is a language/Framework named React.JS, that is also for android ios and web apps.
Now my second question:
which one should i work with ? Xamarin or React.Js ? Which one would better fit to my project and what are the main differences ?
I hope someone could answer that :)
Thanks in advance
This really comes down to personal preference and what you are trying to accomplish. If you are a C# developer, then Xamarin might be your best bet for android. With using ReactNative, it will be a little easier to create your web app from since it uses React. If you are trying to have a native feel for the android app, you will still have to know some core android development for both platforms. If you aren't super worried about the look, feel, and performance of it being native, then you can look into ionic which is built on top of Angular, and this you can use as a web application as well as build it for android.

Application android Hybrid

I have to develop an android application that use geolocation, and I am confused to choose between web framework mobile and native Android application, and if I must to choose a web frawework which one do you recommend to me?
Actually there are many kinds of framework : like JQuery mobile , Phonegap , titanium , Windev for mobilephones
Regarding the firs part of your question, I'd say this depends on a couple of factors:
1.) Previous experience: Do you already possess experience working with HTML/CSS + JQuery or do you possess experience working with Java? If your answer is yes to the first part: go for web framework development. If your answer is yes to the second part (Java): go for native app development, trust me, it's really easy to pick up if you have already worked with Java before and possess basic knowledge about inheritance and working with packages etc., also, start with the tutorials on developer.android.com If your answer is no to both parts of that question then I'd suggest you go with native app development since picking up Java is relatively easier compared to HTML/CSS+Javascript, in my opinion. If your answer is yes to both parts of the question (i.e you've worked with both Java and HTML/CSS+JS) then look at point 2.
2.) Personal Preference: Clearly, you don't have one right now so just go with what feels easier.
3.) For a geolocation app I'd say native app development is easier, I've been working on a geolocation based app for a while now and I felt that using the Google Maps API was pretty easy and you'll also find significant amounts of help from stackoverflow since everyone and their mothers have tried to make a geolocation-based app. I found the answers to most of my problems here on SO.
If you need more suggestions on this matter don't hesitate from asking!

Android App - XML or java

I am currently starting to create an app for a small charity company. But I'm not entirely sure how to properly learn how to code for the Android OS. I have searched online for tutorials, but most stop at the same stage and only show you how to launch the "helloWorld" app.
My question is this:
1) Will using solely XML be sufficient to code an app? Does it require working in partnership with Java?
2) Does anyone know of any books, recommended books of course, that break everything down for you step-by-step?
Android Developer site very good to give you all ideas. Start from Hello, World
1.) Not at all. XML is ONLY used for the layouts.
2.) There are a few books out there that I'm sure someone will come along and recommend, but I've found the tutorials here to be the best start.
In your case, I'd look at AppInventor which allows you to create small Apps without coding (at least that's what it says, haven't used it yet myself)
1) No, you can use XML for interface, but you can't write an Android app in XML :) You are not required to work with Java, but Android language is based on Java, so knowing Java is an advantage while learning to code.
2) Did you installed Eclipse and the plugin for Android?
The Android Training is pretty useful, and I've learnt a lot from the tutorials and the sample code provided there. (The Notepad app is way more complex than the Hello World tutorial ;)!).
Also, take a look at the answers on that question: How can I learn Android?

Categories

Resources