diff --git a/.gitattributes b/.gitattributes
index c4993e897c2..b65d3040d50 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1151,6 +1151,18 @@ forge-gui-desktop/src/test/java/forge/gui/ListChooserTest.java -text
forge-gui-desktop/src/test/java/forge/gui/game/CardDetailPanelTest.java -text
forge-gui-desktop/src/test/java/forge/item/DeckHintsTest.java -text
forge-gui-desktop/src/test/java/forge/model/FModelTest.java -text
+forge-gui-ios/.classpath -text
+forge-gui-ios/.project -text
+forge-gui-ios/Info.plist.xml -text
+forge-gui-ios/libs/libObjectAL.a -text
+forge-gui-ios/libs/libgdx-freetype.a -text
+forge-gui-ios/libs/libgdx.a -text
+forge-gui-ios/minlog-1.2.jar -text
+forge-gui-ios/pom.xml -text
+forge-gui-ios/robovm.properties -text
+forge-gui-ios/robovm.xml -text
+forge-gui-ios/src/forge/ios/Main.java -text
+forge-gui-ios/src/forge/ios/package-info.java -text
forge-gui-mobile-dev/.classpath -text
forge-gui-mobile-dev/.project -text
forge-gui-mobile-dev/.settings/org.eclipse.jdt.core.prefs -text
diff --git a/forge-gui-ios/.classpath b/forge-gui-ios/.classpath
new file mode 100644
index 00000000000..a7eb75de807
--- /dev/null
+++ b/forge-gui-ios/.classpath
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/forge-gui-ios/.project b/forge-gui-ios/.project
new file mode 100644
index 00000000000..0b6a8932e6b
--- /dev/null
+++ b/forge-gui-ios/.project
@@ -0,0 +1,36 @@
+
+
+ forge-gui-ios
+
+
+ forge
+ forge-ai
+ forge-core
+ forge-game
+ forge-gui
+ forge-gui-mobile
+ forge-net
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.robovm.eclipse.RoboVMClassBuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.m2e.core.maven2Nature
+ org.eclipse.jdt.core.javanature
+ org.robovm.eclipse.RoboVMNature
+
+
diff --git a/forge-gui-ios/Info.plist.xml b/forge-gui-ios/Info.plist.xml
new file mode 100644
index 00000000000..38e4c2121e9
--- /dev/null
+++ b/forge-gui-ios/Info.plist.xml
@@ -0,0 +1,61 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ ${app.name}
+ CFBundleExecutable
+ ${app.executable}
+ CFBundleIdentifier
+ ${app.id}
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${app.name}
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ ${app.version}
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ ${app.build}
+ LSRequiresIPhoneOS
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ CFBundleIcons
+
+ CFBundlePrimaryIcon
+
+ CFBundleIconFiles
+
+ Icon
+ Icon-72
+
+
+
+
+
diff --git a/forge-gui-ios/libs/libObjectAL.a b/forge-gui-ios/libs/libObjectAL.a
new file mode 100644
index 00000000000..95969cb7cce
Binary files /dev/null and b/forge-gui-ios/libs/libObjectAL.a differ
diff --git a/forge-gui-ios/libs/libgdx-freetype.a b/forge-gui-ios/libs/libgdx-freetype.a
new file mode 100644
index 00000000000..cc7d0640562
Binary files /dev/null and b/forge-gui-ios/libs/libgdx-freetype.a differ
diff --git a/forge-gui-ios/libs/libgdx.a b/forge-gui-ios/libs/libgdx.a
new file mode 100644
index 00000000000..549d913204a
Binary files /dev/null and b/forge-gui-ios/libs/libgdx.a differ
diff --git a/forge-gui-ios/minlog-1.2.jar b/forge-gui-ios/minlog-1.2.jar
new file mode 100644
index 00000000000..afb0d88ccbe
Binary files /dev/null and b/forge-gui-ios/minlog-1.2.jar differ
diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml
new file mode 100644
index 00000000000..f1dcf10d4ae
--- /dev/null
+++ b/forge-gui-ios/pom.xml
@@ -0,0 +1,85 @@
+
+ 4.0.0
+
+
+ yyyyMMdd-HHmm
+ jar
+ -Xms128m
+ -Xmx2048m
+ 1.5.32.005
+
+
+
+ forge
+ forge
+ 1.5.32-SNAPSHOT
+
+
+ forge-gui-ios
+ ${packaging.type}
+ Forge iOS
+
+
+ src
+
+
+ maven-compiler-plugin
+
+ 1.7
+ 1.7
+
+
+
+
+
+ filters
+ true
+
+
+ forge-ios-${alpha-version}
+
+
+
+
+ forge
+ forge-core
+ ${project.version}
+
+
+ forge
+ forge-game
+ ${project.version}
+
+
+ forge
+ forge-ai
+ ${project.version}
+
+
+ forge
+ forge-net
+ ${project.version}
+
+
+ forge
+ forge-gui
+ ${project.version}
+
+
+ forge
+ forge-gui-mobile
+ ${project.version}
+
+
+ com.googlecode
+ minlog
+ 1.2
+
+
+ com.badlogicgames.gdx
+ gdx-backend-robovm
+ 1.4.1
+
+
+
\ No newline at end of file
diff --git a/forge-gui-ios/robovm.properties b/forge-gui-ios/robovm.properties
new file mode 100644
index 00000000000..e8c3068950c
--- /dev/null
+++ b/forge-gui-ios/robovm.properties
@@ -0,0 +1,8 @@
+#
+#Wed Dec 03 21:31:22 CET 2014
+app.version=1.0
+app.id=forge.ios
+app.mainclass=forge.ios.Main
+app.executable=forge.ios.Main
+app.build=1
+app.name=Forge
diff --git a/forge-gui-ios/robovm.xml b/forge-gui-ios/robovm.xml
new file mode 100644
index 00000000000..7fbb18576ff
--- /dev/null
+++ b/forge-gui-ios/robovm.xml
@@ -0,0 +1,49 @@
+
+ ${app.executable}
+ ${app.mainclass}
+ ios
+ thumbv7
+
+
+ ../forge-gui
+
+ res/**
+
+
+
+ res
+
+
+ ios
+ Info.plist.xml
+
+ com.android.okhttp.HttpHandler
+ com.android.okhttp.HttpsHandler
+ com.android.org.conscrypt.**
+ com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
+ com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings
+ com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi
+ com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std
+ com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi
+ com.android.org.bouncycastle.crypto.digests.AndroidDigestFactoryOpenSSL
+ org.apache.harmony.security.provider.cert.DRLCertFactory
+ org.apache.harmony.security.provider.crypto.CryptoProvider
+ org.apache.xalan.processor.TransformerFactoryImpl
+ java.util.logging.**
+ com.esotericsoftware.minlog.Log
+
+
+ libs/libgdx.a
+ libs/libObjectAL.a
+ libs/libgdx-freetype.a
+
+
+ UIKit
+ OpenGLES
+ QuartzCore
+ CoreGraphics
+ OpenAL
+ AudioToolbox
+ AVFoundation
+
+
\ No newline at end of file
diff --git a/forge-gui-ios/src/forge/ios/Main.java b/forge-gui-ios/src/forge/ios/Main.java
new file mode 100644
index 00000000000..a51d79bb39c
--- /dev/null
+++ b/forge-gui-ios/src/forge/ios/Main.java
@@ -0,0 +1,79 @@
+package forge.ios;
+
+import org.robovm.apple.foundation.NSAutoreleasePool;
+import org.robovm.apple.uikit.UIApplication;
+import org.robovm.apple.uikit.UIPasteboard;
+
+import com.badlogic.gdx.ApplicationListener;
+import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
+import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
+import com.badlogic.gdx.backends.iosrobovm.IOSFiles;
+
+import forge.Forge;
+import forge.assets.AssetsDownloader;
+import forge.interfaces.IDeviceAdapter;
+import forge.util.FileUtil;
+
+public class Main extends IOSApplication.Delegate {
+
+ @Override
+ protected IOSApplication createApplication() {
+ final String assetsDir = new IOSFiles().getLocalStoragePath() + "/../../forge.ios.Main.app/";
+ if (!AssetsDownloader.SHARE_DESKTOP_ASSETS) {
+ FileUtil.ensureDirectoryExists(assetsDir);
+ }
+
+ final IOSApplicationConfiguration config = new IOSApplicationConfiguration();
+ config.useAccelerometer = false;
+ config.useCompass = false;
+ final ApplicationListener app = Forge.getApp(new IOSClipboard(), new IOSAdapter(), assetsDir);
+ final IOSApplication iosApp = new IOSApplication(app, config);
+ return iosApp;
+ }
+
+ public static void main(String[] args) {
+ final NSAutoreleasePool pool = new NSAutoreleasePool();
+ UIApplication.main(args, null, Main.class);
+ pool.close();
+ }
+
+ //special clipboard that works on iOS
+ private static final class IOSClipboard implements com.badlogic.gdx.utils.Clipboard {
+ @Override
+ public String getContents() {
+ return UIPasteboard.getGeneral().getString();
+ }
+
+ @Override
+ public void setContents(final String contents0) {
+ UIPasteboard.getGeneral().setString(contents0);
+ }
+ }
+
+ private static final class IOSAdapter implements IDeviceAdapter {
+ @Override
+ public boolean isConnectedToInternet() {
+ return true;
+ }
+
+ @Override
+ public boolean isConnectedToWifi() {
+ return true;
+ }
+
+ @Override
+ public String getDownloadsDir() {
+ return new IOSFiles().getExternalStoragePath();
+ }
+
+ @Override
+ public boolean openFile(String filename) {
+ return new IOSFiles().local(filename).exists();
+ }
+
+ @Override
+ public void exit() {
+ // Not possible on iOS
+ }
+ }
+}
\ No newline at end of file
diff --git a/forge-gui-ios/src/forge/ios/package-info.java b/forge-gui-ios/src/forge/ios/package-info.java
new file mode 100644
index 00000000000..e1d9e45230d
--- /dev/null
+++ b/forge-gui-ios/src/forge/ios/package-info.java
@@ -0,0 +1 @@
+package forge.ios;
\ No newline at end of file