모바일 트렌드와 ios

50
Mobile Computing Life T echniques, B ussiness & M arket, D evelopment twitter.com/ @godrm OSXDEV .org facebook.com/ godrm NHN NEXT 김정

Upload: jung-kim

Post on 25-Jan-2015

145 views

Category:

Engineering


0 download

DESCRIPTION

데브기어 오픈세미나 - 모바일 트렌드와 iOS 관점에서 설명한 자료입니다.

TRANSCRIPT

Mobile Computing LifeTechniques, Bussiness & Market, Development

twitter.com/@godrmOSXDEV.org facebook.com/godrm

NHN NEXT 김정

About godrm

› Source: NBC News and The Associated Press (http://photoblog.nbcnews.com/)

Mobile ComputingAny-time, Any-where, Any-device

언제든지 어디서나 어떤것이든네트워크에 연결되어 사용할 수

있는 컴퓨팅 환경

Business & MarketMobile Contents, App Market, Business Platform

© 2014 Forrester Research, Inc. Reproduction Prohibited 24

#mobilemindshift

4. The audience size in Asia will elevate the  region’s  role  in  mobile  innovation  .  .  .

Source: Ericsson Mobility report, November 2013

앱 마켓 다운로드와 수익

유료앱 vs 무료앱

ⓒ 2013 MezzoMedia Inc.

PC vs Mobile 이용자 수

3,319만명 3,632만명

In digital era, What does ‘Watching TV’ even mean?

Source: The Wall Street Journal (2013/10/08)

������������

모바일 국내시장

1인당 주기적으로 사용하는 앱 개수

2620%

10-2520%

1-960% 9

국내 앱 마켓 이슈✴ 카카오톡 비중이 지나치게 높음

✴ 40대 이상은 OS 마켓을 사용하지 않고 카카오톡 마켓만

✴ 게임 카테고리 편식이 심함

✴ 10,20대는 레이싱, 러닝, 연예 다양한 게임 장르 존재

✴ 40대 이상 퍼즐 게임 집중

✴ 하루 30분 이상 40%, 1시간 이상 21%

✴ 44% 정도 한달에 하나 이상의 게임을 다운로드

✴ 21% 최근 3개월 이내 유료 결제함

모바일 앱 - 성공 사례

Apple iTunes Ecosystem

✴ 콘텐츠 생산 도구 ✴ Desktop Publishing ✴ Video/Audio Authorising ✴ Pro Tools

✴ 콘텐츠 소비 도구 ✴ iPod ✴ iPhone ✴ iPad ✴ Apple TV

✴ 콘텐츠/광고 유통 ✴ Music, Video, ✴ TV show, ✴ App, ✴ Book, ✴ Radio

Technique TrendsHardware, Software, Tool

43,185 iOS Developers

10,199 Android Developers

1,412 X-platform Developers

AppStore HQ

Number of Developers (북미)

Computing Power

✴ NASA - Apollo Guidance Computer ✴ Apollo 8 (1968) ✴ 1966 August ✴ 2.048 MHz Discrete IC RTL ✴ 16bit 2048 words RAM ✴ 36,684 words ROM

ARMv8 (AArch64)

Bluetooth LE - Beacon

IoT (Internet of Things)

LLVM

아이디어의 시작은…

• JVMs do all optimizations online at JIT time: - Hugely redundant across runs - Applications launch slowly - What if we could do heavy lifting at install time? !

• Problem: Java bytecode is too limiting! - Memory safety prevents some optzns (eg. bounds checks) - JVM type system doesn’t lend itself to machine optzns

With some sort of low level virtual machine, we could optimize better and a JIT compiler

would have to do less work online!

Introduction• LLVM

- Low-Level Virtual Machine • An Infrastructure for Multi-stage Optimization

- by Chris Arthur Lattner @2002 • Design and Implementation of a compiler infrastructure

- support a unique multi-stage optimization system - support inter-procedural and profile-driven optimizations

• LLVM virtual instruction (IR) - with high-level type information

• Sponsored by APPLE

The Architecture

Compile Time

Link Time Run-Time

Compiler FE 1

Compiler FE N

.. .o files

LLVM

LLVM

Linker IPO / IPA

Native CodeGen

Libraries

exeLLVM

LLVM

LLVM

exe & LLVM

JIT

CPU

Runtime Optimizer

Offline Reoptimizer

LLVM

LLVM

exe

exeProfile & Trace Info

Profile Info

Generalized attributes

User-defined literals

Inheriting constructors

Alignment - alignof/alignas

Unrestricted unions

UCNs in literals

Call for help

http://llvm.org/

Call for help!

Python

Common Dynamic Language Representation + Type Inference

Ruby C, C++, Ada, ...

– OSS community needs to unite work on various scripting languages

– Common module to represent/type infer an arbitrary dynamic language

– Who will provide this? pypy? parrot? llvm itself someday (“hlvm”)?

Perl Javascript ...

llvm-gcc

LLVM

OpenGL

GLSL, ARB VP, ...

What Next?

LTO JIT Install TimeCodegenIPO

Cross LangOptzn

DebuggerSupport

LLVM use in Open Source OSes• Minix moved to Clang as default compiler • FreeBSD is working on ClangBSD • LLVM is the basis of the Renderscript compiler in Android • LLVM a hard dependency for Gallium3D • Building Debian with Clang • Unsupported GCC Flags / C Extensions출처 : http://llvm.org/devmtg/2012-04-12/Slides/Mark_Charlebois.pdf

Use-case #1 - New Compiler• Cling - CERN • CtoVerilog - Haifa University • OpenCL - AMD • Click - Ericsson • EDGtoLLVM - ARM • Jaguar - Cray • Delphi XE- Embarcadero

Use-case #2 - Optimization

Flash ActionScript (.as3) ➔ ActionScript Bytecode (.abc) ➔ LLVM Bytecode (.bc) ➔.abc ➔ .swf

Use-case #3 - Cross Language

Crack Scripting Language ➔ C/C++/Java-like Scripting Language ➔ Speed of a compiled language, ease of use of a scripting language ➔ Unladen Sparrow(Python), Rubinius(Ruby), V8(JS)

cf. PNaCl (Portable Native Client)

Use-case #3 - Emscripten

compiles LLVM bytecode into JavaScript ➔ C/C++ to JavaScript ➔ can be run on the web ➔ Python, the Bullet physics engine, eSpeak (TTS)

https://github.com/kripken/emscripten/wiki

Everything  compiles  into  LLVM  bitcode

The  web  is  everywhere,  and  runs  JavaScript

Compiling  LLVM  bitcode  to  JavaScript  lets  us  run~  everything,  everywhere

asm.js

https://www.youtube.com/watch?v=XsyogXtyU9o

Bots

Xcode 5 and OS X Server

Continuous Integration

• 여러 버전의 OS와 하드웨어 모델별로 테스트 • 프로젝트의 빌드, 분석, 테스트를 자주 • 자동으로 빠르게 문제를 파악하고 • 과도한 작업은 서버로 이관 • 프로젝트의 빌드/테스트 이력을 보관 • 개발팀 분산 작업에 도움 cf. Jenkins, Hudson, CruiseControl

Bot

• Defines what to build■ Project and SCM information

• When to build it■ Periodic, on-commit, or manual

• How to build it■ Shared scheme■ Static analysis■ Testing and devices■ Archives

• Notifications

Technology Cycles

Source: Mary Meeker, Internet Trends D11 Conference 2013

������������

Top 10 Tech Project in Kickstarter, 2013

������������

Mobile will be the your life...

Thanks