Implications for developing iOS app on real device only? - ios

I would like to use some lib file (.a) in my app.
I got the files from a 3rd party, to use an IP camera they developed.
As i understand there is no way to open this files, so i will use them as is.
The problem is the files requires real device architecture, so i can't run (or build) them
on the iOS Simulator.
What will be the Implications for developing iOS app on real device only ?
(Besides a slower build and run time and discomfort..)
Also, is there a way to change this requirement so it could run on the simulator ?
Thank you

You should write your own mock library, that exposes the exact same API the vendor provides, and test against that in your simulator. The functionality your mock library provides can be as boring or as exciting as you desire.

Related

Running iOS code without simulator

I have noticed that Xcode is capable of running UIKit code for IBDesignables, without launching the simulator at all. It seems to be using IBDesignablesAgentCocoaTouch tool which is a macOS app. How something like that can be implemented?
iOS apps compiled for x86_64 are actually normal macOS apps, just linked against different frameworks. The simulator framework provides the runtime needed for all those framework to function in a manner similar to how they do on iOS hardware. The IBDesignablesAgentCocoaTouch daemon spins up enough of the iOS subsystem to be able to take a snapshot of your UI every time you make a change in Xcode. Theoretically, it is possible to spin up the iOS subsystem partially or fully in a different manner than how the simulator does, but this is most likely infringes on the developer license agreement you signed when installing, and would certainly not be legal for distribution. Legal or otherwise, it would be quite an undertaking, and very likely to break with each change to the system. It is enough to look at how widely the simulator framework has changed over the recent years to get a feel for how hard this would be for non-Apple developers.
If you need to run non-UI code for testing, for instance, there are far more easier ways to achieve what you need, such as creating a macOS target and including all your non-UI stuff in it, and stubbing out the absolutely minimum necessary UI stuff for testing.
If you want to achieve multiplatform development using iOS frameworks, and then running them using Apple iOS frameworks outside of the simulator, this is not legal (iOS frameworks are not distributed with macOS normally, and require installing Xcode), and is not a good idea, as users expect applications to behave natively on the platform they are running. iOS UI concepts fit best for touch input, but they would be out of place on a precision-pointer input ecosystem.

How to reduce my iOS app's bundle size?

I am working on an iOS app that integrates with multiple bluetooth devices (e.g. printers and barcode scanners). Each of the devices comes with it's own version of SDK and most of them just have objective-c/swift SDKs but not javascript SDKs.
Would like to find out what is the best way to reduce the app bundle size at the same time supporting multiple devices ?
Based on my investigations,
iOS doesn't allow downloading objective-c/swift code dynamically during runtime, hence the option of downloading the SDKs after the user having installed the app is ruled out.
Would like to get a feedback on the feasibility of the below solution. Also let me know if there is a better solution.
iOS version 8+ support embedded frameworks - Have separate iOS driver
apps for each of the supported devices which just installs the device
SDK as a shared embedded framework so that the parent app can
dynamically link to the shared embedded framework if one that matches
the connected device is available, otherwise force the user to
download the respective driver app.
This question has gone unanswered for a little while, so you may have already figured this out, but no, you cannot make shared embedded frameworks on iOS. Only Apple can do that. All of the frameworks you use must be either provided by Apple or embedded inside your app.

Is there any tool available to automate iOS default (Emai)l app?

I have explored couple of tools like Appium,KIF, for these tools we need to own the app (to enable Automation Instrument) to automate. And also tried with .IPA files available on the internet (Gmail email client) on iOS simulator, not got any success yet.
I have requirement to automate iOS default Email app, is there any tool/approach to do this?
Yup, Apple has it pretty locked down for apps that are not yours. For that situation, you can try using Sikuli, which uses a computer vision approach to automation. (Sikuli uses OpenCV under the hood).
If you also want to automate an app on a real device, you can use Sikuli combined with a camera and Tapster, a robot for interacting with a device. (Disclosure: I started the Appium and Tapster projects.)

i have already developed an app in java how do i open it in xcode simulator

My team has developed a big social networking app. Now i want to publish it to app store. But the app is not written in Objective C. What is the way to get it published in app store? Or least how can i open in in Xcode simulator for testing and enhancement?
My guess is that you created an app in android and now want to port it to iOS. Unfortunately Xcode isn't able to transform Java to Objective-C and iOS cannot run Java apps, so you will not be able yo submit your app as-is to the App Store.
You will have to do it the hard way and rewrite the entire app in Objective-C. Luckily Google recently launched a translator that might help with part of the work: http://google-opensource.blogspot.com.br/2012/09/j2objc-java-to-ios-objective-c.html
You cannot. Sorry.
I recently worked on an app for iOS and Android launch and we settled for parallel development.
Your Java code is incompatible with iOS and Xcode has no process to convert it to Obj-c.
The only options for cross-platform development that I am aware of are:
1) Heavy use of c/c++ based libraries; these can be utilised in both Android applications and iOS applications (this is what we used). But the entire front end of the apps must be re-implemented.
2) A cross-platform framework such as PhoneGap or Appcelerator, but this would require significant redevelopment from your current code-base.
3) A 'translator' such as the one Breno Gazzola suggested (another option is XMLVM) but these only do some of the work for you, and they're far from perfect.
It's very hard to judge without knowing your code, but if I were you I'd look at combining options 1 and 3 as much as possible, but budget for a complete re-write.

Create an iPhone app for personal use without using Xcode or going through the App Store

I want to make a little app just for me. I don't want to distribute it, and don't want to make any money from it, I just need to have this app with me.
I don't have a Mac capable of running Xcode, and I don't want to waste any money on the developer license.
Is there a way I can make an app for only my personal iPhone 4s, without going through the App Store or using Xcode? My iPhone is jailbroken.
A web app might be a better solution.
The short answer is no. You would need a Mac/Xcode to compile/build the application for you. As #Thalecress suggested you might be better off building a web app.
Also check PhoneGap, with it you can deploy your web app in several platforms (including iOS, Android and WP7). Phonegap also offers a build service that you can use to wrap the final web app as a native app to run it on a device (PhoneGap:Buld).

Resources