I'm trying to build a hybrid app with some native features like geotagging, notifications and offline storage. So far in my research I got the feeling that I will need xCode to access the native features on iOS.
Is there a way that I can skip that step? I have found that Cordova API, supports native features with JavaScript, but also I have found some contradicting statements witch suggest that I also need to also use xCode.
Thank you
If you want to build an iOS-App you'll need Xcode's command line tools to build, run and deploy your App. So you can't skip this step.
The Steroids tooling lets you develop your app without the need for Xcode (or Android Studio). You use a companion app from App Store to develop locally, then an online Build Service to create a stand-alone package. The wrapper provides access to many native APIs, including all Cordova core plugins.
(Disclaimer: I work for AppGyver.)
Related
Is there a technical limitation why Xamarin does not support updating the application without publishing to the app store? Javascript cross-platform mobile development frameworks like React Native or Cordova can do this.
You are comparing Apples to Oranges in a sense. When it comes down to Native Development, Xamarin is a framework that allows you to do Native Development via Wrappers: https://developer.xamarin.com/guides/cross-platform/getting_started/introduction_to_mobile_development/#How_Does_Xamarin_Work
Because of this, you would do the same workflow as if you were pushing an update to your Native Android/iOS application(Programmed in Java/Obj-C respectfully).
Whereas on the other side with frameworks like React/Cordova, they have mechanisms to inject content via pulling from a server-side service. This is explained pretty clearly in a third party cordova project that does this very thing:
https://github.com/markmarijnissen/cordova-app-loader
However if you made a local Cordova application that had no connection to a server-side service and you needed to update it, you would most likely have to follow the same procedure of uploading the new .ipa / .apk with the new assets/code/etc as it would be a packaged stand-alone app.
That's because all the code is in js files that can be downloaded an replaced out side of the ARM binary. Xamarin's code is the binary. Also, if your code is in the App Store, you should be updating through the store. This is less of a limitation of Xamarin (since you can't do this with native obj-c apps either) and more of a "pro" for the js apps.
As a side note, if you go with Enterprise deployment instead of App Store, you can update whenever you want (because you completely control the deployment mechanism).
I am an iOS developer & I have to start work on Xamarin platform project for iOS. So I have some basic queries as a beginner in Xamarin. I have already initiated study from Link1 Link2
App is developed in Android On Xamarin & now I have to develop the same app for iOS(iPhone+iPad).
So my question are
Can I reuse the C# code written for Android app in iOS?
I have to redesign the UI for iOS devices? (As per my knowledge "YES" plz
confirm if I am wrong)
.Any idea or any suggestion would be great for me.
Thanks
Well, that depends.
If you had been using Xamarin.Forms you would only need to build one project which would then compile into a .apk (Android) and .ipa (iOS) distribution binary. Thus, by choosing Forms, you would only need to design and build the UI once as logic and UI is shared between all platforms.
On the other hand, you can chose to build your application using Xamarin.Android and Xamarin.iOS. In doing so, you can share the logic (e.g. ViewModels, Services, Converters) only. The rest will have to be built platform specific. So in the ladder case, you wouldn't be able to reuse the C# code which you've built for Android on iOS, as the platforms differ.
As Demitrian said earlier, using Xamarin.Forms allows you to build a single project.
If you want to use Xamarin.Android and Xamarin.iOS, which I do, you can build a solution containing an Android project and an iOS project, then add a Shared Project to your solution containing the common code, like classes, models, HTTP actions, etc. That way, you can save some programming time, while still taking advantage of each platform's specificities.
I need to buy a Mac just for building ionic/phonegap/cordova hybrid apps.
Which model is good enough for the task?
Want to spend as little as possible and I don't mind if it is slow.
The best idea would be to rent a mac rather that purchasing it just for the sake of building hybrid apps. You can consider MacInCloud option which may work out cheap for you.
There is a better (cheaper) solutions for you,
Use adobe phone gap build? build.phonegap.com/
it is very powerful, just upload your code in zip file and it will do all the stuff for you, i have been using for a while, and it allows you to have free unlimited builds for one app.
Use the ionic native build service, i felt that phoneGap build is easier and better, however, ionic native build allow you to have 30 native builds per month. http://docs.ionic.io/docs/package-ios
For sure these will work using windows or Linux, but you still need to create the build certificates to use these services, and to do so you need a mac,
So for me i have used a virtual machine copy of (OSX) to create the certificates on windows, or you can borrow a friends mac to do that :) .
By the time I'm writing this, I'm working on a Xamarin cross-platform app (iOS,Android and Windows Phone), using Azure Mobile Services. There is interest of also developing Mac OS X version of this app.
Is there a way to use the Azure for the OS X app, because I can't find anything on the web? Please, be descriptive as possible :)
There is not currently Xamarin.Mac support in Mobile Services. If you look here (https://github.com/Azure/azure-mobile-apps-net-client/tree/master/sdk) you will see there is a Xam.iOS, Android, and Forms project.
You can add a feature request for Xam.Mac, or make an open PR that adds in a Xam.Mac project. I'd assume the main PCL component will work and its just a matter of adding the Mac specific wrappers where needed. I'm not sure how much dev work that would actually entail though to say if its feasible or not.
i just downloaded Appcelerator Titanium and experimenting with it, I selected Desktop application and to support python,PHP and Ruby but I can't find Java. how to really work with java. I just need a hint about how to get my java code working there, where to put my java files and where should I include them.
Appcelerator Titanium does not support java .. well not directly
But take a look at these URLs for some possible options in writing java code
that indirectly uses titanium ..
As usual, the mileage obtained from adding a new layer of code would depend on how
well one understands the core architecture of how all the bits plug together .. :
https://github.com/emitrom/titanium4j
http://www.learningtitanium.com/software/gwt4titanium/javas-write-once-run-anywhere-for-titanium.html
As Emitron writes:
Titanium4j(Ti4j) is a Java application framework designed for creating rich
and interactive native applications for mobile and desktop.
The mobile package inside Ti4j leverages Appcelerator Titanium Mobile
to create native mobile applications.
The desktop package inside Ti4j leverages The TideSDK to create native desktop
applications.
Titanium4j takes the underlying frameworks to another level by making you avoid
JavaScript and puting all Java libraries and tools are at your disposal
You will have to decide whether the above justifies learning this extra functionality .. I reckon it does justify it