--- title: "Sample code" slug: "appsafer-sample" tags: ["App Safer", "android", "ios", "sdk"] updated: 2026-09-17T09:19:52Z published: 2026-09-17T09:19:52Z canonical: "guide.ncloud-docs.com/appsafer-sample" stale: true --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Sample code Available in Classic and VPC You can find various sample codes to help you use App Safer. Note Sample codes for each operating systems are provided in the following languages. - Android: Kotlin, Java - iOS: Swift, Objective-C ## Android You can find sample codes available in Android. ### SDK The sample code that runs App Safer applied with the SDK intergration method is as follows: **Kotlin** ```kotlin import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import com.nbp.appsafer.AppSafer import java.io.File import java.util.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) ``` // prevent screenshot AppSafer.INSTANCE.preventScreenshot(window) // set user id AppSafer.INSTANCE.userId = "ExampleUserId" // get user id val userId = AppSafer.INSTANCE.userId // app safer start runBlocking { AppSafer.INSTANCE.start(applicationContext); // get udid val udid = AppSafer.INSTANCE.userDeviceId } } ``` } ```
Java ```java import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.nbp.appsafer.AppSafer; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // prevent screenshot AppSafer.INSTANCE.preventScreenshot(getWindow()); // set user id AppSafer.INSTANCE.setUserId("ExampleUserId"); // get user id String userId = AppSafer.INSTANCE.getUserId(); // app safer start Thread thread = new Thread(new Runnable() { @Override public void run() { AppSafer.INSTANCE.start(applicationContext); // get udid String udid = AppSafer.INSTANCE.getUserDeviceId(); } }); thread.start(); } } ``` ## iOS Check sample codes available in iOS. ### Reset The sample code for reset is as follows: **Swift** ```swift import SwiftUI struct ContentView: View { func initAppSaferExample() { // APP_SAFER_KEY generated when registering an app to the Console let result = AppSafer().initAppSafer(AppSaferDelegator.delegator, serviceCode: "ncloud", key: "") ``` NSLog("initAppSafer() result: %d", result); if(result == SUCCESS) { // init success } else if(result == FAIL) { // init fail } } var body: some View { Button("initAppSafer") { initAppSaferExample() } } ``` } class AppSaferDelegator: NSObject, AppSaferDelegate { static let delegator = AppSaferDelegator() private override init() {} ``` func appSaferDidInitFinish(_ result: Int32) { print("appSaferDidInitFinish result \(result)"); if(result == BLOCK) { print("Device is blocked!"); // add to exit application logic } } ``` } ```
Objective-C ```objc #import @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; AppSafer *appSafer = [[AppSafer alloc] init]; int res = FAIL; if(appSafer != nil) { // APP_SAFER_KEY generated when registering an app to the Console res = [appSafer initAppSafer:self serviceCode:@"ncloud" key:""]; NSLog(@"initAppSafer result %d", res); if(res == SUCCESS) { // init success } else if(res == FAIL) { // init fail } } else { NSLog(@"AppSafer is nil"); } } - (void)appSaferDidInitFinish:(NSUInteger)result msg:(NSString *)message { NSLog(@"appSaferDidInitFinish result %d", result); if(result == BLOCK) { NSLog(@"Device is blocked!"); // add to exit application logic } } ``` ### Real-time Security detection The sample code that runs real-time security detection is as follows: **Swift** ```swift import SwiftUI struct ContentView: View { func checkTamperingExample() { let result = AppSafer().checkTampering() ``` switch(result) { case FAIL: print("Failed to check tampering") break case SUCCESS: print("Check Tampering Success") break case BLOCK: print("Device is blocked") break case BEFOREINIT: print("AppSafer is not initialized") break default: break } } var body: some View { Button("checkTampering") { checkTamperingExample() } } ``` } class AppSaferDelegator: NSObject, AppSaferDelegate { static let delegator = AppSaferDelegator() private override init() {} ``` func appSaferDidCheckTamperingFinish(_ result: Int32) { print("appSaferDidCheckTamperingFinish result: " + ( result == FAIL ? "FAIL" : result == SAFE ? "SAFE" : result == DETECT ? "DETECT" : result == BLOCK ? "BLOCK": "UNKNOWN")) if(result == BLOCK) { print("Device is blocked!") // add to exit application logic } } func appSaferDetectedJailbreak() { print("[DETECT] appSaferDetectedJailbreak"); } func appSaferDetectedSimulator() { print("[DETECT] appSaferDetectedSimulator"); } func appSaferDetectedDebugging() { print("[DETECT] appSaferDetectedDebugging"); } func appSaferDetectedMemoryTampered() { print("[DETECT] appSaferDetectedMemoryTampered"); } ``` } ```
Objective-C ```objc @implementation ViewController - (IBAction)checkAppSafer:(id)sender { AppSafer *appSafer = [[AppSafer alloc] init]; if(appSafer != nil) { int res = [appSafer checkTampering]; switch(res) { case FAIL: NSLog(@"Failed to check tampering"); break; case SUCCESS: NSLog(@"Check Tampering Success"); break; case BLOCK: NSLog(@"Device is blocked"); break; case BEFOREINIT: NSLog(@"AppSafer is not initialized"); break; } } else { NSLog(@"AppSafer is nil"); } } - (void)appSaferDidCheckTamperingFinish:(int)result { if(result == BLOCK) { [self.msgbox setText:@"Device is blocked!"]; // add to exit application } NSLog(@"appSaferDidCheckTamperingFinish result %@", result == FAIL ? @"FAIL" : result == SAFE ? @"SAFE" : result == DETECT ? @"DETECT" : result == BLOCK ? @"BLOCK": @"UNKNOWN"); } - (void)appSaferDetectedJailbreak { NSLog(@"[DETECT] appSaferDetectedJailbreak"); } - (void)appSaferDetectedSimulator { NSLog(@"[DETECT] appSaferDetectedSimulator"); } - (void)appSaferDetectedDebugging { NSLog(@"[DETECT] appSaferDetectedDebugging"); } - (void)appSaferDetectedMemoryTampered { NSLog(@"[DETECT] appSaferDetectedMemoryTampered"); } ```