diff --git a/.DS_Store b/.DS_Store
index 70851af..3b7abc4 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/NexacroN/.DS_Store b/NexacroN/.DS_Store
new file mode 100644
index 0000000..bdffabd
Binary files /dev/null and b/NexacroN/.DS_Store differ
diff --git a/NexacroN/Android/.DS_Store b/NexacroN/Android/.DS_Store
new file mode 100644
index 0000000..054b95f
Binary files /dev/null and b/NexacroN/Android/.DS_Store differ
diff --git a/NexacroN/Android/nexacroApp/.gitignore b/NexacroN/Android/nexacroApp/.gitignore
new file mode 100644
index 0000000..ec4c59d
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/.gitignore
@@ -0,0 +1,85 @@
+# Built application files
+*.apk
+*.aar
+*.ap_
+*.aab
+
+# Files for the ART/Dalvik VM
+*.dex
+
+# Java class files
+*.class
+
+# Generated files
+bin/
+gen/
+out/
+# Uncomment the following line in case you need and you don't have the release build type files in your app
+# release/
+
+# Gradle files
+.gradle/
+build/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Proguard folder generated by Eclipse
+proguard/
+
+# Log Files
+*.log
+
+# Android Studio Navigation editor temp files
+.navigation/
+
+# Android Studio captures folder
+captures/
+
+# IntelliJ
+*.iml
+.idea/workspace.xml
+.idea/tasks.xml
+.idea/gradle.xml
+.idea/assetWizardSettings.xml
+.idea/dictionaries
+.idea/libraries
+# Android Studio 3 in .gitignore file.
+.idea/caches
+.idea/modules.xml
+# Comment next line if keeping position of elements in Navigation Editor is relevant for you
+.idea/navEditor.xml
+
+# Keystore files
+# Uncomment the following lines if you do not want to check your keystore files in.
+#*.jks
+#*.keystore
+
+# External native build folder generated in Android Studio 2.2 and later
+.externalNativeBuild
+.cxx/
+
+# Google Services (e.g. APIs or Firebase)
+# google-services.json
+
+# Freeline
+freeline.py
+freeline/
+freeline_project_description.json
+
+# fastlane
+fastlane/report.xml
+fastlane/Preview.html
+fastlane/screenshots
+fastlane/test_output
+fastlane/readme.md
+
+# Version control
+vcs.xml
+
+# lint
+lint/intermediates/
+lint/generated/
+lint/outputs/
+lint/tmp/
+# lint/reports/
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/.idea/compiler.xml b/NexacroN/Android/nexacroApp/.idea/compiler.xml
new file mode 100644
index 0000000..fb7f4a8
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/.idea/encodings.xml b/NexacroN/Android/nexacroApp/.idea/encodings.xml
new file mode 100644
index 0000000..97626ba
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/.idea/jarRepositories.xml b/NexacroN/Android/nexacroApp/.idea/jarRepositories.xml
new file mode 100644
index 0000000..a5f05cd
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/.idea/misc.xml b/NexacroN/Android/nexacroApp/.idea/misc.xml
new file mode 100644
index 0000000..98de6fa
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/.idea/runConfigurations.xml b/NexacroN/Android/nexacroApp/.idea/runConfigurations.xml
new file mode 100644
index 0000000..797acea
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/.idea/runConfigurations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/app/.gitignore b/NexacroN/Android/nexacroApp/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/app/build.gradle b/NexacroN/Android/nexacroApp/app/build.gradle
new file mode 100644
index 0000000..1770e86
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/build.gradle
@@ -0,0 +1,45 @@
+plugins {
+ id 'com.android.application'
+}
+
+android {
+ compileSdkVersion 30
+
+ defaultConfig {
+ applicationId "com.example.nexacroapp"
+ minSdkVersion 21
+ targetSdkVersion 30
+ versionCode 1
+ versionName "1.0"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+ implementation 'androidx.appcompat:appcompat:1.3.0'
+ implementation 'androidx.exifinterface:exifinterface:1.3.2'
+
+ implementation 'com.google.android.material:material:1.3.0'
+ implementation 'com.google.android.gms:play-services-maps:17.0.1'
+ implementation 'com.google.android.gms:play-services-location:18.0.0'
+
+ implementation 'com.google.firebase:firebase-core:18.0.3'
+ implementation 'com.google.firebase:firebase-messaging:21.1.0'
+
+ implementation 'com.neovisionaries:nv-websocket-client:2.14'
+
+ // nexacro.aar은 project/app/libs 에 위치 시킨다.
+ implementation name: 'nexacro', ext: 'aar'
+}
+
+apply plugin: 'com.google.gms.google-services'
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/app/google-services.json b/NexacroN/Android/nexacroApp/app/google-services.json
new file mode 100644
index 0000000..8967170
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/google-services.json
@@ -0,0 +1,42 @@
+{
+ "project_info": {
+ "project_number": "995072755403",
+ "firebase_url": "https://summer-nexus-581.firebaseio.com",
+ "project_id": "summer-nexus-581",
+ "storage_bucket": "summer-nexus-581.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:995072755403:android:28b014c688afb816",
+ "android_client_info": {
+ "package_name": "com.example.nexacroapp"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAaOYYoqFY9-AcA_P5jUtK_-2EmeoLvy7g"
+ }
+ ],
+ "services": {
+ "analytics_service": {
+ "status": 1
+ },
+ "appinvite_service": {
+ "status": 1,
+ "other_platform_oauth_client": []
+ },
+ "ads_service": {
+ "status": 2
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/app/libs/이곳에_nexacro.aar을_위치시킨다.txt b/NexacroN/Android/nexacroApp/app/libs/이곳에_nexacro.aar을_위치시킨다.txt
new file mode 100644
index 0000000..e69de29
diff --git a/NexacroN/Android/nexacroApp/app/proguard-rules.pro b/NexacroN/Android/nexacroApp/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/app/src/main/AndroidManifest.xml b/NexacroN/Android/nexacroApp/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..23ad253
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/src/main/AndroidManifest.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/app/src/main/java/com/example/nexacroapp/MainActivity.java b/NexacroN/Android/nexacroApp/app/src/main/java/com/example/nexacroapp/MainActivity.java
new file mode 100644
index 0000000..6931793
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/src/main/java/com/example/nexacroapp/MainActivity.java
@@ -0,0 +1,60 @@
+package com.example.nexacroapp;
+
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+
+import com.nexacro.NexacroResourceManager;
+import com.nexacro.NexacroUpdatorActivity;
+
+public class MainActivity extends NexacroUpdatorActivity {
+
+ public MainActivity() {
+ super();
+
+ setProjectURL("http://your project url");
+ setBootstrapURL("http://your bootstrap url/start_android.json");
+
+ // Default startupClass is NexacroActivity.class for NexacroView
+ // setStartupClass(UserCustomActivity.class);
+
+ /* for extends NexacroActivity (for soZam module, archive 없이 구동)*/
+ //NexacroResourceManager.createInstance(this);
+ //NexacroResourceManager.getInstance().setBootstrapURL("http://your bootstrap url/start_android.json", true);
+ //NexacroResourceManager.getInstance().setProjectURL("http://your project url");
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ // updatetype : server 인 경우에만 아래 주석제거, 기본값은 false 임(update / local )
+ //NexacroResourceManager.createInstance(this);
+ //NexacroResourceManager.getInstance().setDirect(true);
+
+ Intent intent = getIntent();
+ if(intent != null) {
+ String bootstrapURL = intent.getStringExtra("bootstrapURL");
+ String projectUrl = intent.getStringExtra("projectUrl");
+ if(bootstrapURL != null) {
+ setBootstrapURL(bootstrapURL);
+ setProjectURL(projectUrl);
+ }
+ }
+
+ super.onCreate(savedInstanceState);
+
+ if (!isTaskRoot()) {
+ intent = getIntent();
+ if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(intent.getAction())) {
+ startRuntime();
+ finish();
+ return;
+ }
+ }
+ }
+
+ @Override
+ public void setContentView(View view) {
+ super.setContentView(view);
+ }
+}
diff --git a/NexacroN/Android/nexacroApp/app/src/main/res/values-ja/strings.xml b/NexacroN/Android/nexacroApp/app/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000..22869cf
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/src/main/res/values-ja/strings.xml
@@ -0,0 +1,3 @@
+
+ nexacro N
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/app/src/main/res/values-ko/strings.xml b/NexacroN/Android/nexacroApp/app/src/main/res/values-ko/strings.xml
new file mode 100644
index 0000000..22869cf
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/src/main/res/values-ko/strings.xml
@@ -0,0 +1,3 @@
+
+ nexacro N
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/app/src/main/res/values-zh/strings.xml b/NexacroN/Android/nexacroApp/app/src/main/res/values-zh/strings.xml
new file mode 100644
index 0000000..22869cf
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/src/main/res/values-zh/strings.xml
@@ -0,0 +1,3 @@
+
+ nexacro N
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/app/src/main/res/values/strings.xml b/NexacroN/Android/nexacroApp/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..22869cf
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ nexacro N
+
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/build.gradle b/NexacroN/Android/nexacroApp/build.gradle
new file mode 100644
index 0000000..0ddc8a7
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/build.gradle
@@ -0,0 +1,28 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:4.2.1'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ classpath 'com.google.gms:google-services:4.3.5'
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ jcenter()
+ flatDir {
+ dirs 'libs'
+ }
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/gradle.properties b/NexacroN/Android/nexacroApp/gradle.properties
new file mode 100644
index 0000000..52f5917
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/gradle.properties
@@ -0,0 +1,19 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app"s APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
\ No newline at end of file
diff --git a/NexacroN/Android/nexacroApp/gradle/wrapper/gradle-wrapper.jar b/NexacroN/Android/nexacroApp/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..f6b961f
Binary files /dev/null and b/NexacroN/Android/nexacroApp/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/NexacroN/Android/nexacroApp/gradle/wrapper/gradle-wrapper.properties b/NexacroN/Android/nexacroApp/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..97b4169
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Thu Mar 04 11:46:46 KST 2021
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
diff --git a/NexacroN/Android/nexacroApp/gradlew b/NexacroN/Android/nexacroApp/gradlew
new file mode 100644
index 0000000..cccdd3d
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/NexacroN/Android/nexacroApp/gradlew.bat b/NexacroN/Android/nexacroApp/gradlew.bat
new file mode 100644
index 0000000..f955316
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/NexacroN/Android/nexacroApp/settings.gradle b/NexacroN/Android/nexacroApp/settings.gradle
new file mode 100644
index 0000000..194761a
--- /dev/null
+++ b/NexacroN/Android/nexacroApp/settings.gradle
@@ -0,0 +1,2 @@
+include ':app'
+rootProject.name = "nexacroApp"
\ No newline at end of file
diff --git a/NexacroN/iOS/.DS_Store b/NexacroN/iOS/.DS_Store
new file mode 100644
index 0000000..9fa6ac2
Binary files /dev/null and b/NexacroN/iOS/.DS_Store differ
diff --git a/NexacroN/iOS/nexacroApp/.DS_Store b/NexacroN/iOS/nexacroApp/.DS_Store
new file mode 100644
index 0000000..f23a062
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/.DS_Store differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp.xcodeproj/project.pbxproj b/NexacroN/iOS/nexacroApp/nexacroApp.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..0c9576c
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp.xcodeproj/project.pbxproj
@@ -0,0 +1,470 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 616B47C1269BF339007F3453 /* Default-Portrait@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 616B47BE269BF339007F3453 /* Default-Portrait@2x~ipad.png */; };
+ 616B47C2269BF339007F3453 /* Default-Portrait~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 616B47BF269BF339007F3453 /* Default-Portrait~ipad.png */; };
+ 616B47C3269BF339007F3453 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 616B47C0269BF339007F3453 /* Default-568h@2x.png */; };
+ 61A14D3420293FDF00CED070 /* archive in Resources */ = {isa = PBXBuildFile; fileRef = 61A14D3320293FDF00CED070 /* archive */; };
+ 61ACF339263BBA4B00073FD1 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 61ACF338263BB91600073FD1 /* libc++.tbd */; };
+ B8C6CB241DF79E2F00E2F1F7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B8C6CB221DF79E2E00E2F1F7 /* Localizable.strings */; };
+ B8CFAF431F6222DE00307D08 /* splashimage_pad_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = B8CFAF411F6222DE00307D08 /* splashimage_pad_landscape.png */; };
+ B8CFAF441F6222DE00307D08 /* splashimage_phone_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = B8CFAF421F6222DE00307D08 /* splashimage_phone_landscape.png */; };
+ B8EAFA361F74A45C0013FF17 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B8EAFA351F74A45C0013FF17 /* Launch Screen.storyboard */; };
+ B8EC88121DE702DD00C30DD6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B8EC88111DE702DD00C30DD6 /* main.m */; };
+ B8EC88151DE702DE00C30DD6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B8EC88141DE702DE00C30DD6 /* AppDelegate.m */; };
+ B8EC885C1DE71AA000C30DD6 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC885A1DE71AA000C30DD6 /* Icon.png */; };
+ B8EC885D1DE71AA000C30DD6 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC885B1DE71AA000C30DD6 /* Icon@2x.png */; };
+ B8EC88761DE71C7B00C30DD6 /* splashimage_pad_portrait.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC88711DE71C7B00C30DD6 /* splashimage_pad_portrait.png */; };
+ B8EC88771DE71C7B00C30DD6 /* splashimage_phone_portrait.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC88721DE71C7B00C30DD6 /* splashimage_phone_portrait.png */; };
+ B8EC88A41DE7DEA500C30DD6 /* data in Resources */ = {isa = PBXBuildFile; fileRef = B8EC88A31DE7DEA500C30DD6 /* data */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 616B47BE269BF339007F3453 /* Default-Portrait@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait@2x~ipad.png"; sourceTree = ""; };
+ 616B47BF269BF339007F3453 /* Default-Portrait~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait~ipad.png"; sourceTree = ""; };
+ 616B47C0269BF339007F3453 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; };
+ 61A14D3320293FDF00CED070 /* archive */ = {isa = PBXFileReference; lastKnownFileType = folder; name = archive; path = nexacroApp/archive; sourceTree = ""; };
+ 61ACF338263BB91600073FD1 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
+ 61C0CDA9264B9A4E0091183F /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; };
+ B8B639D91F09DCDD002BFA20 /* nexacroApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = nexacroApp.entitlements; sourceTree = ""; };
+ B8C6CB231DF79E2F00E2F1F7 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; };
+ B8C6CB251DF79E4000E2F1F7 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; };
+ B8C6CB261DF79E5800E2F1F7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; };
+ B8CFAF411F6222DE00307D08 /* splashimage_pad_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = splashimage_pad_landscape.png; sourceTree = ""; };
+ B8CFAF421F6222DE00307D08 /* splashimage_phone_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = splashimage_phone_landscape.png; sourceTree = ""; };
+ B8EAFA351F74A45C0013FF17 /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; };
+ B8EC880D1DE702DD00C30DD6 /* nexacroApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = nexacroApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ B8EC88111DE702DD00C30DD6 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
+ B8EC88131DE702DE00C30DD6 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
+ B8EC88141DE702DE00C30DD6 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ B8EC88211DE702DE00C30DD6 /* nexacroApp-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "nexacroApp-Info.plist"; sourceTree = ""; };
+ B8EC882C1DE707C000C30DD6 /* nexacroApp-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "nexacroApp-Prefix.pch"; sourceTree = ""; };
+ B8EC885A1DE71AA000C30DD6 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = ""; };
+ B8EC885B1DE71AA000C30DD6 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x.png"; sourceTree = ""; };
+ B8EC88711DE71C7B00C30DD6 /* splashimage_pad_portrait.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = splashimage_pad_portrait.png; sourceTree = ""; };
+ B8EC88721DE71C7B00C30DD6 /* splashimage_phone_portrait.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = splashimage_phone_portrait.png; sourceTree = ""; };
+ B8EC889B1DE7D68800C30DD6 /* nexacro.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = nexacro.framework; sourceTree = ""; };
+ B8EC88A31DE7DEA500C30DD6 /* data */ = {isa = PBXFileReference; lastKnownFileType = folder; name = data; path = nexacroApp/data; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ B8EC880A1DE702DD00C30DD6 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 61ACF339263BBA4B00073FD1 /* libc++.tbd in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 61ACF337263BB91600073FD1 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 61ACF338263BB91600073FD1 /* libc++.tbd */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ B8EC88041DE702DD00C30DD6 = {
+ isa = PBXGroup;
+ children = (
+ 61A14D3320293FDF00CED070 /* archive */,
+ B8EC88A31DE7DEA500C30DD6 /* data */,
+ B8EC88981DE7D2D300C30DD6 /* Library */,
+ B8EC880F1DE702DD00C30DD6 /* nexacroApp */,
+ B8EC880E1DE702DD00C30DD6 /* Products */,
+ 61ACF337263BB91600073FD1 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ B8EC880E1DE702DD00C30DD6 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ B8EC880D1DE702DD00C30DD6 /* nexacroApp.app */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ B8EC880F1DE702DD00C30DD6 /* nexacroApp */ = {
+ isa = PBXGroup;
+ children = (
+ B8B639D91F09DCDD002BFA20 /* nexacroApp.entitlements */,
+ B8EC88101DE702DD00C30DD6 /* Supporting Files */,
+ B8EC88591DE71A8200C30DD6 /* res */,
+ B8EC88131DE702DE00C30DD6 /* AppDelegate.h */,
+ B8EC88141DE702DE00C30DD6 /* AppDelegate.m */,
+ );
+ path = nexacroApp;
+ sourceTree = "";
+ };
+ B8EC88101DE702DD00C30DD6 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ B8C6CB221DF79E2E00E2F1F7 /* Localizable.strings */,
+ B8EC88111DE702DD00C30DD6 /* main.m */,
+ B8EC88211DE702DE00C30DD6 /* nexacroApp-Info.plist */,
+ B8EC882C1DE707C000C30DD6 /* nexacroApp-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ B8EC88591DE71A8200C30DD6 /* res */ = {
+ isa = PBXGroup;
+ children = (
+ B8EC885E1DE71ACD00C30DD6 /* splashimage */,
+ B8EAFA351F74A45C0013FF17 /* Launch Screen.storyboard */,
+ B8EC885A1DE71AA000C30DD6 /* Icon.png */,
+ B8EC885B1DE71AA000C30DD6 /* Icon@2x.png */,
+ );
+ path = res;
+ sourceTree = "";
+ };
+ B8EC885E1DE71ACD00C30DD6 /* splashimage */ = {
+ isa = PBXGroup;
+ children = (
+ 616B47C0269BF339007F3453 /* Default-568h@2x.png */,
+ 616B47BE269BF339007F3453 /* Default-Portrait@2x~ipad.png */,
+ 616B47BF269BF339007F3453 /* Default-Portrait~ipad.png */,
+ B8EC88711DE71C7B00C30DD6 /* splashimage_pad_portrait.png */,
+ B8CFAF411F6222DE00307D08 /* splashimage_pad_landscape.png */,
+ B8EC88721DE71C7B00C30DD6 /* splashimage_phone_portrait.png */,
+ B8CFAF421F6222DE00307D08 /* splashimage_phone_landscape.png */,
+ );
+ path = splashimage;
+ sourceTree = "";
+ };
+ B8EC88981DE7D2D300C30DD6 /* Library */ = {
+ isa = PBXGroup;
+ children = (
+ B8EC889B1DE7D68800C30DD6 /* nexacro.framework */,
+ );
+ name = Library;
+ path = nexacroApp/Library;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ B8EC880C1DE702DD00C30DD6 /* nexacroApp */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = B8EC88241DE702DE00C30DD6 /* Build configuration list for PBXNativeTarget "nexacroApp" */;
+ buildPhases = (
+ B8EC88091DE702DD00C30DD6 /* Sources */,
+ B8EC880A1DE702DD00C30DD6 /* Frameworks */,
+ B8EC880B1DE702DD00C30DD6 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = nexacroApp;
+ productName = nexacroApp;
+ productReference = B8EC880D1DE702DD00C30DD6 /* nexacroApp.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ B8EC88051DE702DD00C30DD6 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 1250;
+ ORGANIZATIONNAME = com.tobesoft;
+ TargetAttributes = {
+ B8EC880C1DE702DD00C30DD6 = {
+ CreatedOnToolsVersion = 8.1;
+ DevelopmentTeam = RAH8A8577Q;
+ ProvisioningStyle = Automatic;
+ SystemCapabilities = {
+ com.apple.BackgroundModes = {
+ enabled = 1;
+ };
+ com.apple.Maps.iOS = {
+ enabled = 0;
+ };
+ com.apple.Push = {
+ enabled = 1;
+ };
+ com.apple.iCloud = {
+ enabled = 0;
+ };
+ };
+ };
+ };
+ };
+ buildConfigurationList = B8EC88081DE702DD00C30DD6 /* Build configuration list for PBXProject "nexacroApp" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ Base,
+ ko,
+ ja,
+ en,
+ "zh-Hans",
+ );
+ mainGroup = B8EC88041DE702DD00C30DD6;
+ productRefGroup = B8EC880E1DE702DD00C30DD6 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ B8EC880C1DE702DD00C30DD6 /* nexacroApp */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ B8EC880B1DE702DD00C30DD6 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ B8EC88A41DE7DEA500C30DD6 /* data in Resources */,
+ B8EC88761DE71C7B00C30DD6 /* splashimage_pad_portrait.png in Resources */,
+ 61A14D3420293FDF00CED070 /* archive in Resources */,
+ B8CFAF431F6222DE00307D08 /* splashimage_pad_landscape.png in Resources */,
+ B8EAFA361F74A45C0013FF17 /* Launch Screen.storyboard in Resources */,
+ 616B47C1269BF339007F3453 /* Default-Portrait@2x~ipad.png in Resources */,
+ B8EC88771DE71C7B00C30DD6 /* splashimage_phone_portrait.png in Resources */,
+ B8CFAF441F6222DE00307D08 /* splashimage_phone_landscape.png in Resources */,
+ B8EC885C1DE71AA000C30DD6 /* Icon.png in Resources */,
+ 616B47C3269BF339007F3453 /* Default-568h@2x.png in Resources */,
+ B8EC885D1DE71AA000C30DD6 /* Icon@2x.png in Resources */,
+ B8C6CB241DF79E2F00E2F1F7 /* Localizable.strings in Resources */,
+ 616B47C2269BF339007F3453 /* Default-Portrait~ipad.png in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ B8EC88091DE702DD00C30DD6 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ B8EC88151DE702DE00C30DD6 /* AppDelegate.m in Sources */,
+ B8EC88121DE702DD00C30DD6 /* main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ B8C6CB221DF79E2E00E2F1F7 /* Localizable.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ B8C6CB231DF79E2F00E2F1F7 /* ko */,
+ B8C6CB251DF79E4000E2F1F7 /* ja */,
+ B8C6CB261DF79E5800E2F1F7 /* en */,
+ 61C0CDA9264B9A4E0091183F /* zh-Hans */,
+ );
+ name = Localizable.strings;
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ B8EC88221DE702DE00C30DD6 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_SUSPICIOUS_MOVES = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ B8EC88231DE702DE00C30DD6 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_SUSPICIOUS_MOVES = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ B8EC88251DE702DE00C30DD6 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CODE_SIGN_ENTITLEMENTS = nexacroApp/nexacroApp.entitlements;
+ DEVELOPMENT_TEAM = RAH8A8577Q;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/nexacroApp/Library",
+ );
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "nexacroApp/nexacroApp-Prefix.pch";
+ INFOPLIST_FILE = "nexacroApp/nexacroApp-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ ONLY_ACTIVE_ARCH = NO;
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-framework",
+ nexacro,
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.tobesoft.nexacroApp;
+ PRODUCT_NAME = "${TARGET_NAME}";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALID_ARCHS = "";
+ "VALID_ARCHS[sdk=iphoneos*]" = "armv7 armv7s arm64";
+ "VALID_ARCHS[sdk=iphonesimulator*]" = x86_64;
+ };
+ name = Debug;
+ };
+ B8EC88261DE702DE00C30DD6 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CODE_SIGN_ENTITLEMENTS = nexacroApp/nexacroApp.entitlements;
+ DEVELOPMENT_TEAM = RAH8A8577Q;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/nexacroApp/Library",
+ );
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "nexacroApp/nexacroApp-Prefix.pch";
+ INFOPLIST_FILE = "nexacroApp/nexacroApp-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ ONLY_ACTIVE_ARCH = NO;
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-framework",
+ nexacro,
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.tobesoft.nexacroApp;
+ PRODUCT_NAME = "${TARGET_NAME}";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALID_ARCHS = "";
+ "VALID_ARCHS[sdk=iphoneos*]" = "armv7 armv7s arm64";
+ "VALID_ARCHS[sdk=iphonesimulator*]" = x86_64;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ B8EC88081DE702DD00C30DD6 /* Build configuration list for PBXProject "nexacroApp" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ B8EC88221DE702DE00C30DD6 /* Debug */,
+ B8EC88231DE702DE00C30DD6 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ B8EC88241DE702DE00C30DD6 /* Build configuration list for PBXNativeTarget "nexacroApp" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ B8EC88251DE702DE00C30DD6 /* Debug */,
+ B8EC88261DE702DE00C30DD6 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = B8EC88051DE702DD00C30DD6 /* Project object */;
+}
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp.xcodeproj/xcshareddata/xcschemes/nexacroApp.xcscheme b/NexacroN/iOS/nexacroApp/nexacroApp.xcodeproj/xcshareddata/xcschemes/nexacroApp.xcscheme
new file mode 100644
index 0000000..9dc939b
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp.xcodeproj/xcshareddata/xcschemes/nexacroApp.xcscheme
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/AppDelegate.h b/NexacroN/iOS/nexacroApp/nexacroApp/AppDelegate.h
new file mode 100644
index 0000000..4ebf03f
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/AppDelegate.h
@@ -0,0 +1,18 @@
+//
+// AppDelegate.h
+// nexacroApp
+//
+// Created by 김재환 on 2016. 11. 24..
+// Copyright © 2016년 com.tobesoft. All rights reserved.
+//
+
+#import
+#import
+#import
+
+@interface AppViewController : NexacroMainViewController
+@end
+
+@interface AppDelegate : NexacroAppDelegate
+- (NexacroMainViewController*)initializeMainViewController;
+@end
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/AppDelegate.m b/NexacroN/iOS/nexacroApp/nexacroApp/AppDelegate.m
new file mode 100644
index 0000000..221bc58
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/AppDelegate.m
@@ -0,0 +1,62 @@
+//
+// AppDelegate.m
+// nexacroApp
+//
+// Created by 김재환 on 2016. 11. 24..
+// Copyright © 2016년 com.tobesoft. All rights reserved.
+//
+
+#import "AppDelegate.h"
+#import
+
+@interface WebViewDelegate : NexacroWKWebViewDelegate
+@end
+
+@implementation AppViewController
+
+// 자동 회전 지원 여부 (YES/NO)
+- (BOOL)shouldAutorotate
+{
+ return YES;
+}
+
+// 회전방향 지원 유무 리턴 (리턴값은 회전 방향의 비트값이 설정된 플러그)
+- (UIInterfaceOrientationMask)supportedInterfaceOrientations
+{
+ return UIInterfaceOrientationMaskAll;
+}
+
+@end
+
+@implementation AppDelegate
+
+- (NexacroMainViewController*)initializeMainViewController
+{
+ NSString *bootstrapUrl = @".../_ios_/start_ios.json";
+
+ [[NexacroResourceManager sharedResourceManager] setBootstrapURL:bootstrapUrl isDirect:NO];
+
+ // WKWebView에서 발생하는 delegate이벤트가 필요없는 경우의 초기화 방법
+ // AppViewController* controller = [[AppViewController alloc] initWithFullScreen:NO];
+
+ // WKWebView 에서 발생하는 delegate 이벤트를 받아야 할 경우의 초기화 방법
+ WebViewDelegate* webviewDelegate = [[WebViewDelegate alloc] init];
+ AppViewController* controller = [[AppViewController alloc] initWithFullScreen:NO
+ andWebviewDelegate:webviewDelegate];
+
+ return controller;
+}
+
+@end
+
+// WKWebView의 delegate이벤트를 받기위해 AppViewController를 초기화 할때 전달하는 구현체
+@implementation WebViewDelegate
+
+#pragma mark - WKWebView - WKNavigationDelegate
+- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
+{
+ [super webView:webView didFinishNavigation:navigation];
+
+ // 넥사크로 로딩이 완료되는 시점입니다.
+}
+@end
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/Library/.gitkeep b/NexacroN/iOS/nexacroApp/nexacroApp/Library/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/archive/.keep b/NexacroN/iOS/nexacroApp/nexacroApp/archive/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/data/nexacro_config.xml b/NexacroN/iOS/nexacroApp/nexacroApp/data/nexacro_config.xml
new file mode 100644
index 0000000..e543c1f
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/data/nexacro_config.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/en.lproj/Localizable.strings b/NexacroN/iOS/nexacroApp/nexacroApp/en.lproj/Localizable.strings
new file mode 100644
index 0000000..d906af8
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/en.lproj/Localizable.strings
@@ -0,0 +1,27 @@
+/*
+ Localizable.strings
+ Nexacro
+
+ Created by 오 영진 on 12. 12. 3..
+
+*/
+
+"needupdate" = "It is need to update. \r\nIt will start after the update is completed.";
+"force_close" = "Update is Completed.";
+"loadingFail" = "First loading is fail. \r\nPlease restart.";
+"updateFail" = "Update is fail. \r\nPlease restart.";
+"notexist" = "Start file is NOT exist. \r\nPlease restart.";
+"BeingUpdated" = "Being updated.";
+"wantreplace" = "There is a file of the save name. Do you want to replace? ";
+"ok" = "OK";
+"cancel" = "Cancel";
+"alert_title" = "";
+"move" = "Move";
+"upper" = "Upper";
+"filter" = "Filter";
+"home" = "Home";
+"nofilename" = "No File Name.";
+"checkforupdates" = "Check for updates.";
+"installforupdates" = "Install for updates.";
+"downloadingforupdates" = "Downloading for updates.";
+"new_engine_available" = "Engine update required.";
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/ja.lproj/Localizable.strings b/NexacroN/iOS/nexacroApp/nexacroApp/ja.lproj/Localizable.strings
new file mode 100644
index 0000000..c583dc7
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/ja.lproj/Localizable.strings
@@ -0,0 +1,27 @@
+/*
+ Localizable.strings
+ Nexacro
+
+ Created by 오 영진 on 12. 12. 3..
+
+*/
+
+"needupdate" = "アップデートがあります。\r\n完了した後に始まります。";
+"force_close" = "アップデートが完了しました。";
+"loadingFail" = "初期ロードに失敗しました。\r\n再起動してください。";
+"updateFail" ="アップデートが失敗しました。\r\n再起動してください。";
+"notexist" = "起動ファイルがありません。\r\n再起動してください。";
+"BeingUpdated" = "アップデート中です。";
+"wantreplace" = "同一のファイル名があります。上書きしますか?";
+"ok" = "確認";
+"cancel" = "キャンセル";
+"alert_title" = "";
+"move" = "移動";
+"upper" = "上位";
+"filter" = "フィルター";
+"home" = "ホーム";
+"nofilename" = "ファイル名がありません。";
+"checkforupdates" = "アップデート確認中です。";
+"installforupdates" = "アップデート設置中です。";
+"downloadingforupdates" = "アップデートダウン中です。";
+"new_engine_available" = "新規バージョンがご利用になれます。";
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/ko.lproj/Localizable.strings b/NexacroN/iOS/nexacroApp/nexacroApp/ko.lproj/Localizable.strings
new file mode 100644
index 0000000..d351cc3
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/ko.lproj/Localizable.strings
@@ -0,0 +1,27 @@
+/*
+ Localizable.strings
+ Nexacro
+
+ Created by 오 영진 on 12. 12. 3..
+
+*/
+
+"needupdate" = "업데이트가 있습니다. \r\n업데이트 완료 후 시작됩니다.";
+"force_close" = "업데이트 되었습니다.";
+"loadingFail" = "초기 로딩이 실패하였습니다. \r\n재시작 해 주세요.";
+"updateFail" = "업데이트가 실패하였습니다. \r\n재시작 해 주세요.";
+"notexist" = "구동에 필요한 파일이 없습니다. \r\n재시작 해 주세요.";
+"BeingUpdated" = "업데이트 중입니다.";
+"wantreplace" = "동일한 파일이 이미 존재합니다. 바꾸시겠습니까?";
+"ok" = "확인";
+"cancel" = "취소";
+"alert_title" = "";
+"move" = "이동";
+"upper" = "상위";
+"filter" = "필터";
+"home" = "홈";
+"nofilename" = "파일명이 없습니다.";
+"checkforupdates" = "업데이트 확인 중입니다.";
+"installforupdates" = "업데이트 설치 중입니다.";
+"downloadingforupdates" = "업데이트 다운 중입니다.";
+"new_engine_available" = "새로운 엔진 버전이 있습니다.\r\n업데이트 하십시오.";
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/main.m b/NexacroN/iOS/nexacroApp/nexacroApp/main.m
new file mode 100644
index 0000000..a634e0b
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/main.m
@@ -0,0 +1,16 @@
+//
+// main.m
+// nexacroApp
+//
+// Created by 김재환 on 2016. 11. 24..
+// Copyright © 2016년 com.tobesoft. All rights reserved.
+//
+
+#import
+#import "AppDelegate.h"
+
+int main(int argc, char * argv[]) {
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/nexacroApp-Info.plist b/NexacroN/iOS/nexacroApp/nexacroApp/nexacroApp-Info.plist
new file mode 100644
index 0000000..b692a6a
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/nexacroApp-Info.plist
@@ -0,0 +1,100 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ ${PRODUCT_NAME}
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+ LSApplicationCategoryType
+
+ LSRequiresIPhoneOS
+
+ NSAppTransportSecurity
+
+ NSAllowsArbitraryLoads
+
+
+ NSLocationAlwaysUsageDescription
+ Google Map 사용자 위치 서비스에 사용됩니다.
+ NSLocationUsageDescription
+ Google Map 사용자 위치 서비스에 사용됩니다.
+ NSLocationWhenInUseUsageDescription
+ Google Map 사용자 위치 서비스에 사용됩니다.
+ UIBackgroundModes
+
+ UIFileSharingEnabled
+
+ UILaunchStoryboardName
+ Launch Screen
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UIStatusBarHidden
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+
+ UIViewControllerBasedStatusBarAppearance
+
+ LSApplicationQueriesSchemes
+
+ ExternalAPITest
+
+ NSCameraUsageDescription
+ 카메라에 접근하기 위해 사용됩니다.
+ NSPhotoLibraryAddUsageDescription
+ 앨범에 접근하기 위해 사용됩니다.
+ NSPhotoLibraryUsageDescription
+ 앨범에 접근하기 위해 사용됩니다.
+ CFBundleURLTypes
+
+
+ CFBundleURLName
+ com.tobesoft.nexacroApp
+ CFBundleURLSchemes
+
+ nexacroApp
+
+
+
+ NSBluetoothAlwaysUsageDescription
+ 블루투스에 접근하기 위해 사용됩니다.
+ NSBluetoothPeripheralUsageDescription
+ 블루투스에 접근하기 위해 사용됩니다.
+ NSRemindersUsageDescription
+ 미리 알림 접근을 위해 사용됩니다.
+ NSContactsUsageDescription
+ 연락처를 조회하고 추가 하는데 사용됩니다.
+ NSMicrophoneUsageDescription
+ 마이크를 통해 소리를 녹음 하는데 사용됩니다.
+ NSCalendarsUsageDescription
+ 일정을 조회 하기 위해 사용됩니다.
+
+
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/nexacroApp-Prefix.pch b/NexacroN/iOS/nexacroApp/nexacroApp/nexacroApp-Prefix.pch
new file mode 100644
index 0000000..b51405a
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/nexacroApp-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'Nexacro' target in the 'Nexacro' project
+//
+
+#import
+
+#ifndef __IPHONE_3_0
+#warning "This project uses features only available in iOS SDK 3.0 and later."
+#endif
+
+#ifdef __OBJC__
+#import
+#import
+#endif
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/nexacroApp.entitlements b/NexacroN/iOS/nexacroApp/nexacroApp/nexacroApp.entitlements
new file mode 100644
index 0000000..903def2
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/nexacroApp.entitlements
@@ -0,0 +1,8 @@
+
+
+
+
+ aps-environment
+ development
+
+
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/Icon.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/Icon.png
new file mode 100644
index 0000000..103ad05
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/Icon.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/Icon@2x.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/Icon@2x.png
new file mode 100644
index 0000000..70859c3
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/Icon@2x.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/Launch Screen.storyboard b/NexacroN/iOS/nexacroApp/nexacroApp/res/Launch Screen.storyboard
new file mode 100644
index 0000000..b2ca70d
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/res/Launch Screen.storyboard
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/check.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/check.png
new file mode 100644
index 0000000..a744f09
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/check.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/check_o.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/check_o.png
new file mode 100644
index 0000000..0c08ff6
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/check_o.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/Default-568h@2x.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/Default-568h@2x.png
new file mode 100644
index 0000000..0049855
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/Default-568h@2x.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/Default-Portrait@2x~ipad.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/Default-Portrait@2x~ipad.png
new file mode 100644
index 0000000..c4cf0a7
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/Default-Portrait@2x~ipad.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/Default-Portrait~ipad.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/Default-Portrait~ipad.png
new file mode 100644
index 0000000..c4cf0a7
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/Default-Portrait~ipad.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_pad_landscape.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_pad_landscape.png
new file mode 100644
index 0000000..366d5ab
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_pad_landscape.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_pad_portrait.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_pad_portrait.png
new file mode 100644
index 0000000..c4cf0a7
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_pad_portrait.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_phone_landscape.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_phone_landscape.png
new file mode 100644
index 0000000..c586763
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_phone_landscape.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_phone_portrait.png b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_phone_portrait.png
new file mode 100644
index 0000000..f152448
Binary files /dev/null and b/NexacroN/iOS/nexacroApp/nexacroApp/res/splashimage/splashimage_phone_portrait.png differ
diff --git a/NexacroN/iOS/nexacroApp/nexacroApp/zh-Hans.lproj/Localizable.strings b/NexacroN/iOS/nexacroApp/nexacroApp/zh-Hans.lproj/Localizable.strings
new file mode 100644
index 0000000..12cd5dd
--- /dev/null
+++ b/NexacroN/iOS/nexacroApp/nexacroApp/zh-Hans.lproj/Localizable.strings
@@ -0,0 +1,27 @@
+/*
+ Localizable.strings
+ Nexacro
+
+ Created by 오 영진 on 12. 12. 3..
+
+*/
+
+"needupdate" = "正在更新。\r\n更新完成后开始。";
+"force_close" = "更新完成。";
+"loadingFail" = "初始加载失败。\r\n请重新开始。";
+"updateFail" = "更新失败。\r\n请重新开始。";
+"notexist" = "无驱动文件。\r\n请重试。";
+"BeingUpdated" = "正在更新。";
+"wantreplace" = "相同的文件已存在。确定要替换吗?";
+"ok" = "确认";
+"cancel" = "取消";
+"alert_title" = "";
+"move" = "移动";
+"upper" = "上级";
+"filter" = "筛选器";
+"home" = "首页";
+"nofilename" = "无文件名。";
+"checkforupdates" = "正在确认更新。";
+"installforupdates" = "正在安装更新。";
+"downloadingforupdates" = "正在下载更新。";
+"new_engine_available" = "发现新的引擎版本。\r\n请更新。";