[교육] 광주/대구 모바일, 사물인터넷 교육 자료

2015.08.13 12:53



개발환경 설정 : http://tech.devgear.co.kr/402210


소스코드 : https://github.com/devgear/RADStudioMobileIoTEdu

받는 방법 : http://tech.devgear.co.kr/delphi_news/404452


대구 WIFI

강의실 뒷편을 참고하세요

❑ 1일차

한 번에 개발하는 안드로이드&iOS 앱

  • 델파이, 파이어몽키, 멀티 플랫폼 개발 이해하기
    • 파이어몽키 특징과 VCL과 차이점을 알아봅니다.
      • 멀티 디바이스 앱 개발 프레임워크의 출현 배경
    • 멀티 디바이스 앱 개발을 위한 IDE 기능을 알아봅니다.
      • 멀티 디바이스 디자이너(프리뷰)
      • 프로젝트 매니저
      • 안드로이드 개발환경 설정
  • [실습] 사원 정보 앱 만들기 #1 (화면 만들기)
  • : 목록 화면, 상세보기 화면, 화면 전환, 효과 적용
    • 자주 사용하는 컴포넌트 익히기
      • 탭 컨트롤, 폼, 프레임: 여러개의 화면 구성
      • 기본 컨트롤(에디트, 버튼, 스위치 등) 속성 살펴보기
      • 화면 꾸미기: 스타일, Shape
      • ListBox(디자인타임, 동적), ListView(ItemAppearance), ScrollBox
    • 애니메이션, 효과 컴포넌트 살펴보기
  • [실습] 사원 정보 앱 만들기 #2 (사진 찍고 사용하기, 전화 걸기)
    • 미리 정의된 기능(액션)으로 사진 찍고 사용하기
    • 플랫폼 서비스 활용해 전화걸기



❑ 2일차

한 번에 개발하는 안드로이드&iOS 앱

  • [실습] 사원 정보 앱 만들기 #3 (임베디드 DB적용)
    • SQLite(임베디드 디비)와 연동하기
  • [시연] 모바일 앱에서 원격 데이터 연결하는 방법 (원격DB서버와 웹 서비스 연결)
    • 데이터 스냅
    • REST Client
    • EMS(Push)
    • BaaS(Push)

사물인터넷

  • 사물인터넷과 통신 기슬 이해하기 (블루투스, 블루투스LE 등)
  • [실습] 위험 지역 경보 시스템 구축하기 #1 (비콘 스캔, 근접 탐지, 위험 경고)
    • 비콘 컴포넌트로 위치기반 서비스 구현하기
    • 애니메이션을 이용해 화면경보 효과 구현하기
    • 사운드 파일을 배포해 경보음 구현하기
  • [실습] 위험 지역 경보 시스템 구축하기 #2 (스마트 조명으로 경고하기)
    • REST API를 제공하는 사물인터넷 기기(조명) 제어 구현하기


사원정보 따라하기

SQLite DB


EMPLOYEE.db


SQLite 클라이언트 프로그램 : http://sqlitebrowser.org/


전화걸기 소스

procedure TForm1.Label6Click(Sender: TObject);

var

  PhoneDlrSvc: IFMXPhoneDialerService;

begin

  if TPlatformServices.Current.

    SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDlrSvc)) then

  begin

    PhoneDlrSvc.Call(Label6.Text);

  end;

end;


REST Debugger

URL
 - http://ajax.googleapis.com/ajax/services/feed
Resource
 - load?v=1.0&num={num}&q={url}
Param
 - http://tech.devgear.co.kr/rss

Open URL(외부 웹브라우저로 웹사이트 열기)

uses

  Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers,

  Androidapi.JNI.Telephony, Androidapi.JNI.JavaTypes, Androidapi.JNIBridge;



procedure OpenURL( AUrl : string );

var

  Intent: JIntent;

begin

  TThread.CreateAnonymousThread( procedure ()

  begin

    Intent := TJIntent.Create;

    Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);

    Intent.setData( StrToJURI( AUrl ) );

    SharedActivity.startActivity(Intent);

  end).Start;

end;


// 호출


리스트(ListView, ListBox) 동적으로 생성하기

procedure TForm1.FillListBox;

var

  Item: TListBoxItem;

begin

  PrototypeBindSource1.First;

  while not PrototypeBindSource1.Eof do

  begin

    Item := TListBoxItem.Create(ListBox1);

    Item.Parent := ListBox1;

    Item.Text := PrototypeBindSource1.Members['ContactName1'].ToString;

    Item.ItemData.Bitmap := nil;

    Item.ItemData.Detail := '';


    PrototypeBindSource1.Next;

  end;

end;


procedure TForm1.FillLlistView;

var

  Item: TListViewItem;

begin

  PrototypeBindSource1.First;

  while not PrototypeBindSource1.Eof do

  begin

    Item := ListView1.Items.Add;

    Item.Bitmap := nil;

    Item.Detail := '';

    Item.Text := PrototypeBindSource1.Members['ContactName1'].ToString;


    PrototypeBindSource1.Next;

  end;

end;



데이터셋에 이미지 적용


uses Data.DBl


procedure TForm1.Button4Click(Sender: TObject);

var

  ImageBitmap, Thumbnail: TBitmap;

  ImgStream, ThumbStream: TMemoryStream;

begin

  ImgStream := TMemoryStream.Create;

  ThumbStream := TMemoryStream.Create;

  try

    ImageBitmap := Image2.Bitmap;

    ImageBitmap.SaveToStream(ImgStream);


    Thumbnail := ImageBitmap.CreateThumbnail(100, 100);

    Thumbnail.SaveToStream(ThumbStream);


    (dmData.FDQuery1.FieldByName('IMAGE') as TBlobField)

        .LoadFromStream(ImgStream);

    (dmData.FDQuery1.FieldByName('THUMB') as TBlobField)

        .LoadFromStream(ThumbStream);

  finally

    ImgStream.Free;

    ThumbStream.Free;

  end;


  dmData.FDQuery1.Post;


  ChangeTabAction1.Tab := TabItem2;

  ChangeTabAction1.ExecuteTarget(nil);

end;


비콘

UUID : {E2C56DB5-DFFB-48D2-B060-D0F5A71096E0}

major id : -1, 100

minor id : -1, 1~4


REST API

Philipse hue

기타 참고

참고 사이트
델파이 기술문서 : http://docwiki.embarcadero.com/


전화번호 가져오기

  • http://tech.devgear.co.kr/delphi_news/405491

ListView ItemAppearance 추가방법 소개


[XE7] 안드로이드 5.0(롤리팝) 지원 핫픽스

당겨서 새로고침 관련자료

E2597 ... arm-linux-androideabi-ld.exe: error: cannot find –ldl

나의 도서관 앱 따라하기

갤럭시 기어 연결 참고링크

카메라 & GPS(Sensor)
사물인터넷 발표자료

자체 푸쉬 전송
http://blog.hjf.pe.kr/293
클라우드 이용 푸쉬 전송
https://translate.googleusercontent.com/translate_c?depth=1&hl=ko&ie=UTF8&prev=_t&rurl=translate.google.com&sl=auto&tl=ko&u=http://docwiki.embarcadero.com/RADStudio/XE8/ja/%25E3%2583%25A2%25E3%2583%2590%25E3%2582%25A4%25E3%2583%25AB_%25E3%2583%2581%25E3%2583%25A5%25E3%2583%25BC%25E3%2583%2588%25E3%2583%25AA%25E3%2582%25A2%25E3%2583%25AB%25EF%25BC%259A%25E3%2583%25AA%25E3%2583%25A2%25E3%2583%25BC%25E3%2583%2588%25E9%2580%259A%25E7%259F%25A5%25E3%2582%2592%25E4%25BD%25BF%25E7%2594%25A8%25E3%2581%2599%25E3%2582%258B%25EF%25BC%2588iOS_%25E3%2581%258A%25E3%2582%2588%25E3%2581%25B3_Android%25EF%25BC%2589&usg=ALkJrhiBzUGCVKiw_kVNfv5T5ReRBKsfxQ

다국어 지원 & 포맷 순서
http://tech.devgear.co.kr/delphi_news/408214

참고링크



저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 교육, 세미나