$30 off During Our Annual Pro Sale. View Details »

DO NOT REPEAT YOURSELF

DO NOT REPEAT YOURSELF

Leverage the power of C++ and Djinni to write native cross platform code on iOS and Android

Avatar for Marco Sero

Marco Sero

March 13, 2015
Tweet

More Decks by Marco Sero

Other Decks in Programming

Transcript

  1. C++

  2. DEFINE INTERFACE IN A .djinni FILE image_cache = interface +c

    { static create_with_path(path: string): image_cache; image_for_key(key: string): binary; save_image_for_key(key: string, image_data: binary); }
  3. IMPLEMENT IT IN C++ shared_ptr<ImageCache> ImageCache::create_with_path(const std::string &path) { ...

    } vector<uint8_t> ImageCache::image_for_key(const string &key) { ... } void ImageCache::save_image_for_key(const string &key, const vector<uint8_t> &image_data) { ... }
  4. USE IT FROM OBJECTIVE-C id<YCCPImageCache> imageCache = [YCPPImageCacheCppProxy createWithPath:cachePath]; NSData

    *imageData = [imageCache imageForKey:cacheKey]; [imageCache saveImageForKey:cacheKey imageData:imageData]; AND JAVA ImageCache imageCache = ImageCache.createWithPath(cachePath); byte[] imageBlob = this.imageCache.imageForKey(cacheKey); imageCache.saveImageForKey(cacheKey, imageBlob);