Archived

This forum has been archived. Please start a new discussion on GitHub.

Objective-C++ support for OS X / iOS

Hi everyone,

It would be nice to have an ICE library for C++ version for OS X / iOS besides Objective C, because I've managed to get more performance out of my mac apps by using C++ and STL than Objective C with their own NS collections and garbage collection.

There is a small trend to build iOS apps that the backend and the "meat" of the app to be built with C++ and the UI with Objective C.

So it would be nice to have both C++ and Objective C versions of the ICE library for OS X and iOS than just Objective C, I hope it's not hard to implement, as the ICE C++ library is pretty mature.

Thanks a lot!

Comments

  • benoit
    benoit Rennes, France
    Hi,

    Since Ice Touch 1.2.0, we provide a C++ SDK along with the Objective-C SDK for iOS and OS X. See the Ice Touch release notes. You will also find a demo using the C++ SDK in the demo/iPhone/cpp/hello directory.

    Cheers,
    Benoit.
  • Cool!

    Wow! awesome! I guess I'll update my Ice installation right away to start checking it out!

    Also, do you think that the android java library could be used, or a way to be ported to blackberry? or are you planning to have blackberry ICE java support?

    Thanks!
  • bernard
    bernard Jupiter, FL
    Hi Raul,

    Blackberry Java is actually Java Micro Edition, while Ice for Java (and Ice for Android) target Java Standard Edition.

    While we never supported Blackberry ourselves, some users were able to create Blackberry applications with the old Ice-E for Java (ME): see ZeroC - Ice-E 1.2.0 Download

    Any interest in Windows Phone 7 support? Our recent Ice for Silverlight release could help...

    Cheers,
    Bernard
  • Thanks Bernard!,

    That would be nice, actually I've been researching a lot on multiplatform mobile development, and was seeing how could ICE as a service communications layer could integrate and how to have a common codebase between multiple platforms.

    For Windows, Mac OS X, and iOS, I could have a common C++ codebase, and have Ice for C++ build for both desktop and mobile in all OSes, for UI something like Qt on desktop for common desktop UI codebase, and for application logic, use something like the POCO C++ libraries that have been tested to build on all platforms with no issues whatsoever.

    For Android and Blackberry, it would have been nice to have a java common codebase, but as you mention, they are implemented completely different because of the Java edition used by each, altough it would be nice to check out the new blackberry 7 API, as it's completely compatible with Android, for the Blackberry Play tablet, people have been installing Android apps as the blackberry market sucks on app variety, so maybe there's an opportunity there for the new blackberry OS coming up. I've also seen people build POCO C++ on Android NDK and blackberry's new NDK. I was a post in here that someone built IceE with android's NDK, but it would be best to stay as close as possible to the ZeroC build for the commercial support.

    For Windows Phone 7, there can't be a common codebase, as users are forced to use .NET with C#, so there's nothing to do there, just in case that support is needed, it will have to have its own implementation of everything.

    And last but not least, on the server side, It could be done either in Java EE (for build and deployment ease, and the extensive java APIs) or C++ and POCO (for database and other utilities, qmake from Qt for ease of build and project portability, and Ice for C++ for better performance), as ICE works amazingly on the server side, so there's no problems there, the server most likely would surely be a common linux flavor (CentOS or OpenSUSE).

    Another issue left would be users behind proxies, as the proxies usually only support HTTP, and creating a Web Services layer to have something to fallback on could create a lot more complexity, so it would be better to analyze that on per-case basis if there is any need for proxy support.

    What do you guys think? I'm trying to use a more common codebase as possible and less variability on frameworks to reduce development time and needed knowlegde for building and deploying applications in both mobile and desktop.
  • bernard
    bernard Jupiter, FL
    Hi Raul,

    Another option for your clients could be Flash/ActionScript (see ZeroC - Ice for ActionScript), and possibly HTML5/WebSocket.

    With Ice, you could implement a single server, and clients for all your favorite mobile and desktop platforms - using C++, Objective-C, Java, C#, ActionScript as needed for each client. Your overall design, your Slice definitions and your server would all be the same.

    Even for your servers, it's very possible you'll want to use multiple programming languages, e.g. Java for business logic servers, C++ for servers that need to interact with C/C++ libraries, or have special performance requirements, Python for administrative tools (...).

    You would have far less flexibility and platform coverage with Java J2EE, POCO C++ or WCF.

    Cheers,
    Bernard