All Projects → calonso → Ios Arkit

calonso / Ios Arkit

Licence: mit
iOS Location based Augmented Reality engine

Projects that are alternatives of or similar to Ios Arkit

Cocoaasyncsocket demo
基于AsyncSocket搭建即时通讯体系 . 包含TCP连接 , 消息发送 , 消息接收 , 心跳处理 ,断网重连 , 消息超时 , 消息分发 , 数据库结构设计 , 消息丢失等 . 以及UI设计, 文本表情消息/语音消息/图片消息/视频消息/文件消息/撤回消息/提示语消息的实现思路讲解
Stars: ✭ 981 (+1014.77%)
Mutual labels:  ios-demo, ios-lib
Mycoretextlabel
图文混排 , 实现图片文字混排 , 可显示常规链接比如网址,@,#话题#,手机号 , 邮箱号等 , 可以自定义链接字,设置关键字高亮等功能 . 适用于微博,微信,IM聊天对话等场景 . 实现这些功能仅用了几百行代码,耦合性也较低
Stars: ✭ 192 (+118.18%)
Mutual labels:  ios-demo, ios-lib
Swiftcocoadsl
An easy way to write iOS UI
Stars: ✭ 103 (+17.05%)
Mutual labels:  ios-demo, ios-lib
Iosproject
IOS综合项目,完善的框架,路由模块化设计,集成科大讯飞SDK方便iOS基本输入控件实现语音辅助输入,UI效果参照京东APP,JS与OC交互,ionic跨平台开发,MQTT 协议,即时通讯协议,视屏播放,跑马灯效果 仿美团地图定位,城市收索, 友盟分享,基础动画 增加FCUIID帮助类,引导页功能模块,照片上传 ,UIView自定义导航栏,文件下载,Masonry 案例,fmdb,数据库,sqlite,百度地图,二维码,照片上传,照片上传有进度,列表倒计时,H5和原生交互,自定义各种弹框,常见表单类型,人脸识别,列表加载图片,列表拖拽,日历操作,导航条渐变,核心动画,动画特效等等
Stars: ✭ 291 (+230.68%)
Mutual labels:  ios-demo, ios-lib
Ios Multiselectiontable
Beautiful way of having a multi-selection table on iOS written in Swift
Stars: ✭ 156 (+77.27%)
Mutual labels:  ios-demo, ios-lib
Avsqldebugger
A Simple Core Data Debugger that will look inside your apps DB
Stars: ✭ 30 (-65.91%)
Mutual labels:  ios-demo, ios-lib
Autoinch
优雅的iPhone全尺寸/等比例精准适配工具
Stars: ✭ 395 (+348.86%)
Mutual labels:  ios-demo
Jlroutes
URL routing library for iOS with a simple block-based API
Stars: ✭ 5,528 (+6181.82%)
Mutual labels:  ios-lib
Hotels
酒店预订App
Stars: ✭ 323 (+267.05%)
Mutual labels:  ios-demo
Kdintroview
Stars: ✭ 300 (+240.91%)
Mutual labels:  ios-lib
Mcchathud
MatchaSKD中录音波形图实现,并增加其他多种样式
Stars: ✭ 62 (-29.55%)
Mutual labels:  ios-demo
Xmnetworking
A lightweight but powerful network library with simplified and expressive syntax based on AFNetworking.
Stars: ✭ 980 (+1013.64%)
Mutual labels:  ios-lib
Iosproject
iOS project of collected some demos for iOS App, use Objective-C
Stars: ✭ 5,357 (+5987.5%)
Mutual labels:  ios-demo
Dsgradientprogressview
A simple animated progress bar in Swift
Stars: ✭ 437 (+396.59%)
Mutual labels:  ios-lib
Swiftchart
Line and area chart library for iOS
Stars: ✭ 950 (+979.55%)
Mutual labels:  ios-lib
Jxt ios demos
一些相关的iOS的Demo汇总
Stars: ✭ 343 (+289.77%)
Mutual labels:  ios-demo
React Native Network Info
React Native library for getting information about the devices network
Stars: ✭ 313 (+255.68%)
Mutual labels:  ios-lib
30 Swift Projects In 30 Days
This is the demos to show 30 demos finishes in 30 days (or more)
Stars: ✭ 527 (+498.86%)
Mutual labels:  ios-demo
Cardviewlist
An elegant and responsive CardView like Android on iOS with Swift. Available horizontal and vertical scrolling with full animations and customizable.
Stars: ✭ 30 (-65.91%)
Mutual labels:  ios-lib
Example Ios Apps
 A curated list of Open Source example iOS apps developed in Swift. An amazing list for people who are beginners and learning ios development and for ios developers who need any example app or feature.
Stars: ✭ 461 (+423.86%)
Mutual labels:  ios-demo

iOS Augmented Reality Engine

I'm glad to share this engine that I've been developing from time to time with all of you. It's based on the iPhone ARKit.

##Core Features:

  • Fully compatible with all versions of iOS from 5.0 onwards.
  • Supports all orientations.
  • Scales and rotates displayed objects based on distance and orientation.
  • Allows user interaction with displayed objects.
  • Displayed objects positions are updated live (According to the user’s position).
  • Supports and distinguishes front looking as well as floor looking .
  • Allows any custom overlay views.
  • Builtin support for radar view.
  • Fully customisable.

##Usage:

First you need to copy and paste the folder ARKit and all its contents into your project. Then implement the ARViewDelegate in any of your classes.

#import "ARKit.h"

#pragma mark - ARViewDelegate protocol Methods

- (ARObjectView *)viewForCoordinate:(ARGeoCoordinate *)coordinate floorLooking:(BOOL)floorLooking {
  ARObjectView *view = nil;

  if (floorLooking) {
    // Build the floor looking view
  } else {
    // Build the front looking view
  }
  return view;

}

- (void) itemTouchedWithIndex:(NSInteger)index {
   // An item has been touched. React accordingly (if necessary)
}

- (void) didChangeLooking:(BOOL)floorLooking {
  if (floorLooking) {
    // The user has began looking at the floor    
  } else {
    // The user has began looking front
  }
}

This class is now ready to provide the information that the engine requires and also to respond to user's interaction. Now, to instantiate the engine and show the augmented reality view:

// Create the location
CLLocation *location = [[CLLocation alloc] initWithLatitude:51.500622 longitude:-0.126662];
ARGeoCoordinate *london = [ARGeoCoordinate coordinateWithLocation:location];
london.dataObject = @"London";

// Given that self is the ARViewDelegate
ARKitConfig *config = [ARKitConfig defaultConfigFor:self];

// Instantiate the engine
ARKitEngine *engine = [[ARKitEngine alloc] initWithConfig:config];
// Provide coordinates to show
[engine addCoordinates:@[london]];
// And fire it up!
[engine startListening];

At this moment you should be enjoying a fully featured augmented reality view showing the view you provided in your viewForCoordinate implementation when you head your device to London city! And when the sad moment of shutting down the augmented reality view comes, then simply...

[engine hide];

And that's all!! For more information on how to add custom overlay views, configure the radar position, start the engine in different orientations or better understanding of the front/floor looking feature, please run the provided example project.

For iOS 8 Support

Add these keys in Info.plist of your app

  • NSLocationWhenInUseUsageDescription (String - iOS) describes the reason why the app accesses the user’s location normally while running in the foreground. Include this key when your app uses location services to track the user’s current location directly. This key does not support using location services to monitor regions or monitor the user’s location using the significant location change service. The system includes the value of this key in the alert panel displayed to the user when requesting permission to use location services.This key is required when you use the requestWhenInUseAuthorization method of the CLLocationManager class to request authorization for location services. If the key is not present when you call the requestWhenInUseAuthorization method without including this key, the system ignores your request.This key is supported in iOS 8.0 and later. If your Info.plist file includes both this key and the NSLocationUsageDescription key, the system uses this key and ignores the NSLocationUsageDescription key.

  • NSLocationAlwaysUsageDescription (String - iOS) describes the reason why the app accesses the user’s location information. Include this key when your app uses location services in a potentially nonobvious way while running in the foreground or the background. For example, a social app might include this key when it uses location information to track the user’s location and display other users that are nearby. In this case, the fact that the app is tracking the user’s location might not be readily apparent. The system includes the value of this key in the alert panel displayed to the user when requesting permission to use location services. This key is required when you use the requestAlwaysAuthorization method of the CLLocationManager class to request authorization for location services. If this key is not present and you call the requestAlwaysAuthorization method, the system ignores your request and prevents your app from using location services.This key is supported in iOS 8.0 and later. If your Info.plist file includes both this key and the NSLocationUsageDescription key, the system uses this key and ignores the NSLocationUsageDescription key.

[Reference Source: Apple Documentation] (https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html)

Acknowledgements

  • Zac White. For his awesome iPhone ARKit that I used as the starting point for this engine.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].