using a third-party library's output directly in Swift - swift

a friend of mine has developed a library, and I want to use it. I don't know how. His library is obfuscated as much as I know, his library is not in cocoa pod, and all I have is the build output of his library project. How can I use this library?

Related

Create user library for iOS

I am creating an 'SDK' which will enable communication with a piece of custom hardware (via BLE, abstracting my comm protocol to async methods/callbacks, on various classes all Obj-C). I wish to package this SDK so I can distribute it to users so they can build apps using this hardware. I want to provide an .h file(s) and a pre-compiled library (closed-source).
What's the best practice here? Shall I choose to create a .framework, .a, .dylib?
what's the difference between them and their usage cases? what's the correct way to create the needed library?
many thanks
You cannot create dylib for iOS. User cannot link his project with that library dynamically on iOS, it is platform restrictions.
You can create framework or .a file (static library).
There can be some issues with resources from you library (framework)
It is dublicate question, see Difference between framework and static library in xcode4, and how to call them

Linking C++ library to a view based application. [XCODE]

I am trying to link C++ based library file to an view based xcode project.
I am building a application for iPhone simulator.
So question is, is it possible to link C++ library to a objective-c project?
If yes then do I need to have an interface in between Objective-C code and the Library?
or can I use lib C++ functions/classes directly in the Objective-C class/methods.
Can some one please point to some good tutorials/examples to how to load a C++ based lib and use it in View based application in XCODE.
I have gone through this link:
http://www.eosgarden.com/en/articles/xcode-static-libraries/
There shouldn't be much you need to do. Have you renamed all files that uses the library to .mm? After that, everything should work the same. You can put C++ code on 1 line, then put Objective-C code the other line.

Tesseract OCR In monotouch

How do I implement the Tesseract OCR in a monotouch application for Iphone?
First you need to have the library ported to iOS and available as a static library. That where Vikas' answer (Pocket-PCR) might comes handy (but I have not tried it).
Next you'll need to create C# bindings to the library.
When the API is exports C functions you can use normal .NET pinvokes, i.e. using DllImport attributes.
When an Objective-C API is provided then you can create bindings using the btouch tool. Instructions are available on the MonoTouch web site.
However (and this looks to be the case for Tesseract) it's a bit more complex for C++ libraries. You'll either need to first create a C (or Objective-C) library that export the feature you need and them bind your own API.
To build the tesseract library, download the source code and compile apropriately for the iPhone (arm processor). Add the library to the XCode project and build.
go this link and try ........
https://github.com/rcarlsen/Pocket-OCR

Can I develop my own objective-C Framework for Cocoa Touch Applications?

Is it possible to create an own obj-C Cocoa Touch framework which can be used by other developers? And furthermore can you protect this framework?
I've created templates for Xcode 4 that allow you to build universal iOS frameworks (which work in both device and simulator).
Once the templates are installed, you simply select "Static iOS Framework" when creating a new project and it does the rest. It also works with unit tests.
https://github.com/kstenerud/iOS-Universal-Framework
You can create a static library. There is an option in the XCode project chooser to do this. You'll have to distribute the compiled static library file and the header files to users of your library. Your actual implementation files (.m) do not need to be distributed.
GHUnit does a good job of this - packaging up the libraries for both simulator and device - so I recommend looking at this project. (I also recommend using this library for unit testing :-)
The frameworks in Objective C are typically just C / ObjC code and a bunch of classes, nothing amazingly special. As such, you can create your own if you'd like, and then just include that in your project when you build it. The iPhone doesn't care about the difference, it just knows to put all that code into your app, along with everything else.
Have a look at the Framework Programming Guide on Apple's website. It will get you started. Essentially what you'll do is create a Framework project in XCode and then go from there.
As for "protecting" your framework, I assume you mean making your code unreadable. I'm not sure if and how you can do this, but perhaps Apple's guide will say something about it.
Yes you can create frameworks for use with Cocoa Touch.
However there are these caveats:
has to be a statically linked libary, no dynamic loading (dyld) for us
should be a combined (lipo) library for i386 (simulator), arm6 and arm7
you need to hack a bundle project into a framework
you should embed (small and few) images into the library so that the developer does not have to mess around with resources but just drags/drops it into his project
... or if you have large and many images build a bundle with these
I have guides for these things on my site.
1+2 = http://www.drobnik.com/touch/2010/04/universal-static-libraries/
The other links you have to google because this site does not let me post more than one URL.
You could make a static library available as binary (i.e. rudimentary "protection") to third parties, but not a dynamic one, as Apple's App Store policy prevents dynamic linking.
Take a look at a worked example for static libraries given at
this site
If you're going to do it, in my opinion JSON.framework is a great example to follow. To hide/obfuscate the source code is a different story, and a different question entirely,
When creating a new project, navigate to iOS > Framework & Library > Cocoa Touch Framework, it's as simple as that. When you are successfully compile, .framework will be created under Products folder in XCode. Right click to show in Finder, and you can find the output.
It's unlikely this will work the way you want it to because the other developers won't be able to use your framework. This StackOverflow Question explains why.

How do I interface OCaml with iPhone API?

I'd like to start developing applications for iPhone, but I'd really like to use OCaml rather than Objective-C. After some googling, it seems like this is definitely possible, but I haven't found any code snippets which actually compile.
Is it possible to write iPhone apps using OCaml? If so, could you provide a snippet demonstrating how to make calls into the Cocoa API from OCaml?
We have instructions for building an OCaml-to-iOS cross compiler on our site. We started with the patches mentioned above, but we found they needed to be modified in several ways to run on a stock iPhone/iPad. We are selling an iPhone app named Cassino that is entirely written in OCaml (except for thin wrappers to Cocoa Touch). Wrappers for all of Cocoa Touch would be a big job, but wrappers for a single application aren't so bad. And coding in OCaml is very pleasant compared to ObjC.
We also just published full sources for a small OCaml iPhone app named Portland at our site. Read more at psellos.com.
Out of the box, OCaml cannot be used to build IPhone apps. You would have to have OCaml output ARM code rather than x86 code. You would also have to build wrappers for all the IPhone API calls.
Still, these guys are going through the pain to try this.
http://web.yl.is.s.u-tokyo.ac.jp/~tosh/ocaml-on-iphone/
My humble recomendation is that you focus on using Obj-C for everything. If
you really want an ML, use it only for the kernel or the interesting portion.
I would find an *ML that code gens to something like C, and then use that result
as a library to the app.
Good luck.