Skip to content

Instantly share code, notes, and snippets.

View robertohuertasm's full-sized avatar
🦀
friendly rustacean

Roberto Huertas robertohuertasm

🦀
friendly rustacean
View GitHub Profile
@robertohuertasm
robertohuertasm / cargo_lipo.sh
Created November 3, 2019 12:12
rust_for_android_ios_flutter
# it's important to not forget the release flag.
cargo lipo --release
@robertohuertasm
robertohuertasm / cbindgen.sh
Created November 3, 2019 12:10
rust_for_android_ios_flutter
cd rust
cbindgen src/lib.rs -l c > rustylib.h
@robertohuertasm
robertohuertasm / xcode_tools.sh
Created November 3, 2019 12:09
rust_for_android_ios_flutter
# install the Xcode build tools.
xcode-select --install
# this cargo subcommand will help you create a universal library for use with iOS.
cargo install cargo-lipo
# this tool will let you automatically create the C/C++11 headers of the library.
cargo install cbindgen
@robertohuertasm
robertohuertasm / install_targets.sh
Created November 3, 2019 12:08
rust_for_android_ios_flutter
# Android targets
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
# iOS targets
rustup target add aarch64-apple-ios armv7-apple-ios armv7s-apple-ios x86_64-apple-ios i386-apple-ios
@robertohuertasm
robertohuertasm / create_rustylib.sh
Created November 3, 2019 12:07
rust_for_android_ios_flutter
cd rust
cargo init - name rustylib - lib
@robertohuertasm
robertohuertasm / scaffolding.sh
Created November 3, 2019 12:05
rust_for_android_ios_flutter
mkdir rust-for-android-ios-flutter
cd rust-for-android-ios-flutter
mkdir ios android rust flutter
@robertohuertasm
robertohuertasm / main.dart
Created November 3, 2019 11:11
rust_for_android_ios_flutter
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:rusty_flutter_lib/rusty_flutter_lib.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
@robertohuertasm
robertohuertasm / RustyFlutterLibPlugin.swift
Created November 3, 2019 11:08
rust_for_android_ios_flutter
import Flutter
import UIKit
public class SwiftRustyFlutterLibPlugin: NSObject, FlutterPlugin {
public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: "rusty_flutter_lib", binaryMessenger: registrar.messenger())
let instance = SwiftRustyFlutterLibPlugin()
registrar.addMethodCallDelegate(instance, channel: channel)
}
@robertohuertasm
robertohuertasm / RustyFlutterLibPlugin.kt
Created November 3, 2019 11:06
rust_for_android_ios_flutter
package com.robertohuertas.rusty_flutter_lib
// importing the Android library
import com.robertohuertas.rusty_android_lib.*
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
import io.flutter.plugin.common.MethodChannel.Result
import io.flutter.plugin.common.PluginRegistry.Registrar
@robertohuertasm
robertohuertasm / MainActivity.kt
Created November 3, 2019 11:03
rust_for_android_ios_flutter
package com.robertohuertas.rusty_android
import android.os.Bundle
import com.google.android.material.snackbar.Snackbar
import androidx.appcompat.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_main.*