FireMonkey /w Native iOS Controls v0.26

처음 시작할때는 언제 다 만들고, 실제 App 프로그램에 들어갈까 정말 걱정이 많았는데, 이제는 거의 끝이 보여, 참 다행이라는 생각이 듭니다. 그동안 해외 많은 개발자분들이 성원해주셔서 개발할 때, 정신적으로, 많은 도움이 되었습니다. :)

 

본 글은 다음과 같은 환경에서 작성되었음을 알려드립니다.

 

 - Compiler : Delphi XE2 (FireMonkey), Free Pascal 2.6

 - XCode 4.3.3

 - Test Device : iPhone 3GS, iPAD 1 

 

1. Previous Version

     http://blog.naver.com/simonsayz/120163528980

 

2. Guide to iOS_Controls

3. Screen Shot

4. Project File

    You can download project's code using the icon

    http://blog.naver.com/simonsayz/120164060580


//

//  iOS Native Control Wrapper for Delphi////  Using XCode 4.3.3//        Delphi XE2//        Free Pascal 2.6////   Author : Simon,Choi ( Choi,Won-Sik )//   ------------------------------------------------------//    simonsayz@naver.com from seoul,korea//    http://blog.naver.com/simonsayz////   Warning//   ------------------------------------------------------//    This code is experimental code for testing.//    Do not use the real project until now. :)////   Version History//   ------------------------------------------------------//    2012.06.20  Ver 0.1//    2012.07.08  Ver 0.2  added iOS_Patch.pas (for fixing errors)//    2012.07.10  Ver 0.21 added NSParser.pas  (for String Conv., by Phill Hess)//    2012.07.13  Ver 0.25 added MapKit,iAd//    2012.07.15  Ver 0.26 added StoreKit,Sound,H/W ////   Supported Controls//   ---------------------------------------------------------------//    01 UIButton                 2012.06.20 Started//    02 UILabel                  2012.07.01//    03 UISegmentedControl       2012.07.02//    04 UITextField              2012.07.01//    05 UISlider                 2012.07.02 //    06 UISwitch                 2012.07.02//    07 UIActivityIndicatorView  2012.07.08//    08 UIProgressBar            2012.07.08//    09 UIPageControl            2012.07.08//    10 UIStepper                2012.07.10//    11 UITableView              2012.07.04//    12 UIImageView              2012.07.08//    13 UITextView               2012.07.10//    14 UIWebView                2012.07.08//    16 UIScrollView             2012.07.13//    17 UIDatePicker             2012.07.13//    18 UIPickerView             2012.07.13//    20 UIView                   2012.07.03//    21 UINavigationBar          2012.07.05//    22 UISearchBar              2012.07.13//    23 UITabBar                 2012.07.03//    24 UIAlertView              2012.07.13//    25 NSTimer                  2012.07.03//    26 NSURLConnection          2012.07.10 Update needed//    27 UIViewController/iOSForm 2012.07.01//    28 CALayer Examples         2012.07.08//    29 Sound                    2012.07.14//    30 GPS,Compass              2012.07.15//    31 Accelerometer            2012.07.15//    15 MKMapView                2012.07.12//    19 ADBannerView             2012.07.13//    32 UIWindow//    33 UIToolBar//    34 UIKeyboard//    35 UINotification//    36 AssetLibrary /w ObjC     2012.07.16//    37 StoreKit                 header ready :)////    Future Works for Basic Class//   ---------------------------------------------------------------//    01. nsstring <-> Tstrings//    02. C Blocks Function ( AssetLibrary, CoreLocation )////    Some useful links//   ---------------------------------------------------------------//    http://dl.dropbox.com/u/28343282/ObjP/index.html//


 


by maxpaper | 2012/07/16 15:49 | 사진관련 프로그래밍 | 트랙백(2) | 덧글(0)

멀티터치 태블릿 앨범프로그램(W500,V500) 맥스페이퍼



HD 동영상은  http://youtu.be/MNK-bGQs7JY?hd=1


윈도우7의 멀티터치 API는 두 종류의 API Set을 제공합니다.

 

WM_Gesture : 고수준 API (윈도우에서 대부분의 처리를 하여, 쉽게 접근 가능)

WM_Touch   : 저수준 API (위치만 제공하여, 전체 기능을 맨땅에 헤딩하여 작성해야 함)

 

WM_Gesture 메시지를 활용해서는 98%까지는 가능하나, 2%부족 현상이 있고, 이 2%가 전체 완성도를 심하게

손상시키기 때문에, 결국은 다시 WM_Touch 로 되돌아가야 합니다.

 

WM_Touch는 맨땅에 헤딩하여 작성해야 하기 때문에, 가속도 공식을 적용하고, 3개 이상의 포인트가 발생시, 

확대,회전,이동 (Zoom, Rotate, Move)기능을 구현하기 위해서는 여러 개의 해를 갖을 있기때문에, matlab으로

역행렬 계산이 필요하게 됩니다.

by maxpaper | 2011/08/01 00:36 | 맥스페이퍼 | 트랙백 | 덧글(0)

아이코니아 W500 포토앨범 동영상3

요즘 개발중인 멀티터치 포토앨범 3번째 동영상입니다.

 

작업을 두 달넘게 하면서, 점점 더 느끼는 것은 윈도우7 약간 아쉬운 점은 있지만,  정말

잘 만들어진 OS라는 생각이 듭니다. 

 

w500도 성능에 비하여, 좀 더 대접받아야할 모델 같구요...

 

참고로, 실제 액정화면은 iPAD와 비교하여, 손색이 없는데, 동영상에서는 흐리멍텅하게

나와서 속이 상하네요... 가속도부분은 내부적으로, 작성되어있지 않은 상태라, 특유의

터치 맛(?)은 아직 없습니다.


by maxpaper | 2011/07/23 15:25 | 트랙백 | 덧글(0)

애플빠가 아닌 메뚜기 개발자로서 (아이폰4/아이패드)

사용자입장에서는 편한 시스템을 아무거나 사용하면 되지만, 개발자 입장에서는 요즘 죽을 지경입니다.


올 초만 하더라도, XP와 Win7 호환성만 검토하기도 바빴는데, 이제는 신경을 써야 할 OS가 한 두개가 아닙니다.

동일한 Intel CPU에서 돌아가더라도, 윈도우,리눅스,맥 운영체제가 너무나 다른 형태의 Presentation Layer를

갖고 있으며, 기본 개발 철학에 의하여, 기본 구성이 다를 수밖에 없는 형편입니다.

또한 요즘 같아서는 데이터베이스 프로그램이 아닌 이상 UI가 이쁘지 않으면 처다보지도 않는데, 이 부분 또한

개발자가 신경을 써야될 부분입니다.

 

일단 개발자라면, 자신의 프로그램의 멀티플랫폼 지원을 원하는데,, 이 또한 매우 판단이 어려운 부분입니다.

사용자라면, 휴대폰 기종 변경하는 것으로 모든 것이 끝날 수 있지만, 개발자는 자신의 시간과 정열을 장시간동안

특정 OS에 쏟아부어야 합니다. 만약 개발하는 플랫폼이 없어지면, 어디에 하소연 할 수도 없이 자신의 탓 밖에는

할 수 없습니다.

 

개인의 능력으로는 모든 플랫폼을 지원할 수 없을 경우에는 과감하게 몇 가지 플랫폼을 포기해야 아픈 결정을

해야 합니다.

 

주관적인 판단으로, PC,Mac,iPhone,iPad를 지원하려 결정을 했습니다.

누가 맞을지는 시간이 지난 다음에야 알 수있겠지만, 현재 시점에서 결정을 하지 못한다면, 개발자체가 진행될 수

없기에, 아픈 결정을 합니다.

 

 

 - iPhone,iPad,Mac 개발 이유

   동일한 UI와 전체적인 통일성이 있습니다. 개발 환경 구축이 처음에는 어렵지만, 한번 하면, 매우 유사한 코드를

   사용하여, 전세계에 릴리즈를 할 수 있습니다. 또한 하드웨어 구성이 동일하기 때문에, 어플리케이션의 안정성을

   확보할 수있습니다. 또한 유료 판매가 가능하리라는 기대감이 어느정도 확보가 되기 때문에, 개발자 입장에서는

   마음이 갈 수 밖에 없는 이유입니다.

 

 - Windows / PC 개발 이유

   애플제품으로는 실제 업무를 보기에는 한국 사회에서는 한계가 있습니다. 또한 MS제품은 20년 넘도록 꾸준하게

   업데이트를 했기 때문에, 엔진자체의 안정성이 매우 뛰어나며, 호환성도 매우 좋습니다.

   윈도우가 있었기에 애플이 성공을 했지, 애플제품만 갖고 살아간다는 것은 초기 인터넷으로 1달 버티기 게임을

   하는 것과 차이가 없습니다. 살 수는 있지만 매우 불편하리라 판단됩니다.


   예를 들어, 한국 사람이 가끔씩 스파게티 먹고 정말 맛있다고 할 수 있지만, 매일 스파게티, 빵 ..등을 먹고는

   살기가 힘들 것입니다. 전통적으로 먹는 쌀밥에 된장찌게를 기본으로 하여, 특식으로 먹어야 할 것 같습니다.

   매일 먹는 것은 화제가 될 수 없기에, 요즘 애플 제품이 유행을 하는 것이라 생각됩니다.

 

 -  삼성 바다 OS 개발 포기 이유

   참 난감한 OS입니다. 최근 인터넷에 자사 중저가 제품에 사용하겠다는 뉴스를 보았습니다. 개발회사 자체도

   하이엔드 제품이 적용이 어려울 것 같이 판단하는데, 30억 개발 이벤트를 했다고 해서 어플리케이션을

   제작한다면, 공모전 출품해서 상금을 타는 것 이외의 의미밖에는 없을 것 같습니다.

 

   특히 국내 대기업의 경우, 크게 이슈화했다가 조직 책임자가 보직변경이 되면, 사용자에게는 아무런 공지

   없이 사그러드는 것을 많이 보아왔습니다.

 

   개발 최종 책임자는 자기 캐리어 쌓았다고 하며, 모든 책임을 조직으로 돌리며, 다른 더 좋은 직장으로

   옮겨갑니다. 물론 삼성전자가 최근있었던 국산OS개발 헤프닝과 다르게 운영 하겠지만,
   최고 CEO (이건희회장님이되겠네요...)가 전략적으로 힘을 실어주지 않으면 성공 유무를 판단하기가

   어려울 것 같다는 생각이 듭니다.

 

   그런데, S/W나 플랫폼이 반도체과 같은 장치산업과 달라서 국내 기업이 전략적,장기적 추진은 어려울 것

   같습니다. 굳이 힘들게 인재를 키워놓으면, 조직의 한계에 부딪쳐서 도망(?)가버리는 사업보다는

   정유공장같이 혼자서는 할 수 없는 사업을 미는 것이 아마 삼성과 같은 조직에서는 매력적일 수 밖에

   없을 것 같습니다.

 

 - 안드로이드 개발 포기 이유

   안드로이드는 제품이 한개가 아니며, 거의 애플을 제외한 모든 메이저 회사에서 제작을 하고 있습니다.

   급조된 연합군 형태라고나 할까...

   너무 다양한 하드웨어 스펙 구성으로 이루어져 있으며, 단말기 회사가 각자 서로 다른 꿈을 갖고 있습니다.

   단말기 특성상, 하드웨어에 밀착된 소프트웨어가 되어야 하는데, PC로 치면 서로 다른 CPU에 서로 다른

   하드웨어, 서로 다른 해상도를 갖고 있는 소프트웨어를 제작해야 합니다.

   이럴 경우, 단말기 제조사는 나는 잘 만들었는데, 소프트웨어때문에 않 돌아간다고 변명을 할 꺼고,

   소프트웨어 개발자는 모든 단말기를 맞출 수 없다고 변명을 할 것입니다.

   이런 문제점이 있기에, 안드로이드 자체가 문제가 아니라, 동일한 성능을 내는 어플리케이션 제작이

   매우 어려울 것 같습니다.

 

   OS버전이 3.0쯤 나와서, 안정화 되면, 단말기를 가장 싸게 만들 수 있는 회사가 승자가 될 것 같고

   당분간 관망하려 합니다.

 

 - 어도비 플래시 관망

    애플에서는 반대하는 것이 당연할 것 같고... 주관적으로 판단해볼때, 두 가지 이유가 있을 것 같은데,


    첫 번째 이유는 애플에서 플래시를 지원하게 되면, 모든 폰이 동일하게 되고, 이럴 경우, 하드웨어회사가

    힘을 갖게 되어, 그동안 한 작업이 모두 물거품이 될 것 같고,


    두 번째 이유는 OS를 잘 이해하지 못하는 플래시 개발자들이 PC에서 돌아가는 형태(엄청난 리소스 사용)로,

    플래시를 작성시 시스템에 부하를 주어, 본연의 전화기 기능까지 먹통을 만들 수도 있고...

 

    첫 번째 이유가 크겠지만, 대놓고 말하기는 뭐해서, 두 번째 이유로 밀어 부치는 것이 아닌하 하는 생각이

    듭니다.


    어도비에야 모든 플랫폼에서 자신의 솔루션이 운영이 되면, 현재의 애플과 같은 위치에 갈 수 있으면,

    단말기 제조회사를 마음대로 할 수 있으니, 당연히 사랑한다는 신문 광고까지 하지 않을까 하는 생각이

    됩니다.

 

    플래시는 1~2년뒤에 다시 생각해보려 합니다.


이 글은 특정회사에 도움,피해를 주려는 것이 아니며, 개발자로써, 주관적인 생각을 정리해본 것입니다.
또한 현재는 통신회사나 단말기 제조사의 프로젝트에 참여를 하지 않기 때문에, 현장 상황은 전혀 모르는

상태에서 개인적인 생각일 뿐입니다.


제 개발 환경...

by maxpaper | 2010/06/14 23:29 | 트랙백 | 덧글(6)

멀티터치를 활용한 스크랩북 편집 프로그램 맥스페이퍼

멀티터치를 활용한 스크랩북 편집 프로그램 맥스페이퍼
Scrapbooking with Multi Touch Gesture  (Maxpaper beta)




윈도우7의 멀티터치 기능을 활용한 앨범 편집

 

한손으로 iphone들고 찍으니, 눈의 초점이 어긋나서 제대로 안됨. 쪼그만 삼각대라고 하나 사던지....

멀티터치 제스추어의 가능성을 보여주는 시연으로 ...


- UI 튜닝이 필요한 베타 단계

by maxpaper | 2010/02/22 01:42 | 트랙백 | 덧글(0)

◀ 이전 페이지다음 페이지 ▶