반응형

윈도우, 안드로이드, iOS, 맥 OS용 앱을 한 번에 개발하고 싶어요.

 

요즘은 안드로이드 버전, iOS 버전 개발을 별도로 해야하기 때문에 

둘 다 정직원을 쓰거나 (인건비 비용이 엄청나죠) 

하나는 정직원, 하나는 프리랜서 또는 두 버전 모두 프리랜서를 고용해서 제품 개발을 하는 경우가 있습니다.

앱 개발이 부담이 되어서 하이브리드 앱 버전을 개발하는 사례도 빈번합니다.

 

이러한 문제를 해결해주는 개발툴이 몇 가지가 있습니다.

Cross-X-platform 또는 Multi-platform 개발툴이라고 합니다.

제가 개발 해오던 개발툴 Delphi 7.0부터 주로 개발해 오던 개발 언어 IDE툴이 있습니다.

(Fotran, assembly, C/C++, visual C++, visual Basic, visual C#, PowerBuilder, C++Builder, Delphi, 웹언어는 제외)

자바나 파이썬, golang은 요즘 배우고 있습니다. 주 언어가 아니면 개발 속도가 떨어지기는 합니다만

다양한 언어를 배우다 보니 프레임워크가 갖추어진 팀과 일할 때는 별 무리 없이 일하게 됩니다.

 

이야기가 옆으로 나갔군요.

크로스플랫폼이 되는 네이티브 앱 개발툴 이야기를 해야하죠.

윈도우, 안드로이드, iOS만 되는 것만 해도 대단하다는 생각이었습니다.

하지만, 여기에 iMac, Linux까지 가능하다뇨. 정말 정말 대단하다는 생각입니다.

이 모든 것이 가능한 개발툴이 바로 

엠바카데로의 Rad Studio XE 버전입니다.

이미지 출처: devgear.co.kr

 

개인적으로 이 개발툴을 구입해서 개발을 하기에는 개발툴이 너무 비싸서 포기하고 있었는데요.

그런데 희소식이 날아듭니다. 무료버전이 나왔습니다. 트라이얼이 아닙니다. 무료입니다.

"커뮤니티 에디션은 개인이 비영리 목적으로만 완전 무료"

우선 개인적으로 개발을 계속 해볼 수 있는 기회가 생겨서 무척 기쁩니다.

이미지 출처: embacadero.com

Rad Studio로 개발 비용 절감과 개발기간 단축, 고려해 보시지 않겠습니까?

저라면 해보고 싶습니다.

무료버전 Rad Studio Community Edition 은 아래 사이트로 가서 다운로드 받을 수 있습니다.

devgear.co.kr/archives/products/delphi_ce#qualificationaaa

 

델파이 – 커뮤니티 에디션 | 데브기어

 

devgear.co.kr

 

 

반응형
Posted by SB패밀리

댓글을 달아 주세요

2017 가장 멋진 앱 개발 플랫폼 Top 10 - 엠바카데로 선정

10 Coolest App Development Platforms of 2017




오늘날 업무 관련 미팅이나 개인적으로 해야 할 일 등 거의 모든 활동을 보조하는 다양한 모바일 앱들이 있습니다.

스마트폰 자체적으로 제공하는 기능이 많아져 모바일 앱의 신기함이 다소 약화되기는 했습니다.

물론 모바일 앱 개발 시장이 포화 상태에 있다고 생각할 수도 있습니다.

하지만, 수많은 혁신을 거듭하는 전문가들은 기술의 속도, 보안, 유연성, 연결성을 놀라울 정도로 향상시킴으로써 그 가치를 더해주고 있습니다.


2017년, 가장 멋진 모바일 앱 개발 플랫폼은 무엇이었을까요?

 

1. Adobe Systems

 

2. Amazon

 

3. Appcelerator by Axway

 

4. Embarcadero (엠바카데로)

미국 텍사스 오스틴에 위치한 이 혁신적인 기업은 신속한 모바일 앱 개발 도구인 RAD스튜디오를 많은 다양한 기업들에게 제공하고 있습니다. RAD스튜디오를 이용해 모바일 앱 뿐만 아니라 주요 4대 플랫폼 윈도우/맥 OS/안드로이드/iOS 용 앱을 개발할 수 있습니다. 사용자들은 동일한 코드를 사용해 서로 다른 운영 체제에 적합한 애플리케이션을 만들 수 있습니다.

 

5. Kinvey

 

6. Kony

 

7. Mendix

 

8. Oracle

 

9. Pegasystems

 

10. Red Hat



출처 : 데브기어 https://readitquik.com/articles/data/10-coolest-app-development-platforms-of-2017/



반응형
Posted by SB패밀리

댓글을 달아 주세요

Rad Studio XE 버전별 멀티디바이스 지원 정보




안드로이드, iOS, Android, 아이오에스, RAD Studio, DELPHI, 모바일,

반응형
Posted by SB패밀리

댓글을 달아 주세요

[delphi] Thread를 이용하여 ProgressBar 그리기

 

2003.12.16

 

 

http://www.swissdelphicenter.ch/torry/showcode.php?id=1887...paint a moving progress bar using a background thread? 
Author: P. Below  
1 Comment to this tip [Write new comment] 
[ Print tip ]     

Tip Rating (6):   
       




  Question: 

  I am trying query to display records in a dbgrid.however, due to size 
  of tables and joins takes a while for the query to Execute.is 
  there any way to Show a prorgess bar with a timer that increments 
  position but continues to work while the query is being executed.BTW, 
  using access so BDE is not used. 

DB그리드에 레코드를 표시하기 위해 쿼리를 시도 중입니다.
그러나 테이블 및 조인의 크기 때문에 쿼리를 실행하는 데 시간이 걸립니다.
쿼리가 실행되는 동안 위치를 증가시키지만 계속 작동하는 타이머로 
Progess 막대를 표시할 수 있는 방법이 있습니까?
어쨌든, 액세스 사용에 BDE를 사용하지 않습니다.


  Answer: 
   
  A progress bar would not be an ideal choice since you cannot determine up 
  front how long the query will take, so you do not know the range the progress 
  bar has to cover.A simple kind of animation that tells the user basically 
  only that the application is not hung would be more appropriate.One could do 
  such a thing in a secondary thread but it would have to be done using the 
  plain Windows API and * no * Synchronize calls (since the main thread is 
  blocked in the BDE call).Here is an example: unit anithread; 

진행률 막대는 쿼리에 시간이 걸릴지 미리 결정할 수 없으므로 이상적인 선택이 아닙니다. 
따라서 진행률 표시줄이 어디까지 적용되어야 하는지 알 수 없습니다.
사용자에게 어플리케이션이 멈춰있지 않은 것만 
기본적으로 알려주는 간단한 애니메이션이 더 적절할 것이다.

보조 스레드에서 이러한 작업을 수행할 수 있지만 
일반 Windows API와 * No * Synchroniz 호출을 사용하여 수행되어야 합니다
(기본 스레드가 BDE 호출에서 차단되었으므로).

다음은 anithread 단위의 예입니다.
interface 

uses 
  Classes, Windows, Controls, Graphics; 

type 
  TAnimationThread = class(TThread) 
  private 
    { Private declarations } 
    FWnd: HWND; 
    FPaintRect: TRect; 
    FbkColor, FfgColor: TColor; 
    FInterval: integer; 
  protected 
    procedure Execute; override; 
  public 
    constructor Create(paintsurface : TWinControl; {Control to paint on } 
      paintrect : TRect;          {area for animation bar } 
      bkColor, barcolor : TColor; {colors to use } 
      interval : integer);       {wait in msecs between 
paints} 
  end; 

implementation 

constructor TAnimationThread.Create(paintsurface : TWinControl; 
  paintrect : TRect; bkColor, barcolor : TColor; interval : integer); 
begin 
  inherited Create(True); 
  FWnd := paintsurface.Handle; 
  FPaintRect := paintrect; 
  FbkColor := bkColor; 
  FfgColor := barColor; 
  FInterval := interval; 
  FreeOnterminate := True; 
  Resume; 
end; { TAnimationThread.Create } 

procedure TAnimationThread.Execute; 
var 
  image : TBitmap; 
  DC : HDC; 
  left, right : integer; 
  increment : integer; 
  imagerect : TRect; 
  state : (incRight, incLeft, decLeft, decRight); 
begin 
  Image := TBitmap.Create; 
  try 
    with Image do  
    begin 
      Width := FPaintRect.Right - FPaintRect.Left; 
      Height := FPaintRect.Bottom - FPaintRect.Top; 
      imagerect := Rect(0, 0, Width, Height); 
    end; { with } 
    left := 0; 
    right := 0; 
    increment := imagerect.right div 50; 
    state := Low(State); 
    while not Terminated do  
    begin 
      with Image.Canvas do  
      begin 
        Brush.Color := FbkColor; 
        FillRect(imagerect); 
        case state of 
          incRight:  
          begin 
            Inc(right, increment); 
            if right > imagerect.right then  
            begin 
              right := imagerect.right; 
              Inc(state); 
            end; { if } 
          end; { Case incRight } 
          incLeft:  
          begin 
            Inc(left, increment); 
            if left >= right then  
            begin 
              left := right; 
              Inc(state); 
            end; { if } 
          end; { Case incLeft } 
          decLeft:  
          begin 
            Dec(left, increment); 
            if left <= 0 then  
            begin 
              left := 0; 
              Inc(state); 
            end; { if } 
          end; { Case decLeft } 
          decRight:  
          begin 
            Dec(right, increment); 
            if right <= 0 then  
            begin 
              right := 0; 
              state := incRight; 
            end; { if } 
          end; { Case decLeft } 
        end; { Case } 
        Brush.Color := FfgColor; 
        FillRect(Rect(left, imagerect.top, right, imagerect.bottom)); 
      end; { with } 
      DC := GetDC(FWnd); 
      if DC <> 0 then 
        try 
          BitBlt(DC, 
            FPaintRect.Left, 
            FPaintRect.Top, 
            imagerect.right, 
            imagerect.bottom, 
            Image.Canvas.handle, 
            0, 0, 
            SRCCOPY); 
        finally 
          ReleaseDC(FWnd, DC); 
        end; 
      Sleep(FInterval); 
    end; { While } 
  finally 
    Image.Free; 
  end; 
  InvalidateRect(FWnd, nil, True); 
end; { TAnimationThread.Execute } 

end. 

{Usage: 
Place a TPanel on a form, size it as appropriate.Create an instance of the 
TanimationThread call like this: procedure TForm1.Button1Click(Sender : TObject); 
} 
var 
  ani : TAnimationThread; 
  r : TRect; 
  begin   
  r := panel1.clientrect; 
  InflateRect(r, - panel1.bevelwidth, - panel1.bevelwidth); 
  ani := TanimationThread.Create(panel1, r, panel1.color, clBlue, 25); 
  Button1.Enabled := False; 
  Application.ProcessMessages; 
  Sleep(30000);  // replace with query.Open or such 
  Button1.Enabled := True; 
  ani.Terminate; 
  ShowMessage('Done'); 
end;
반응형
Posted by SB패밀리

댓글을 달아 주세요


엠바카데로 델파이 XE4 무료 시험버전 30일 다운로드 링크 입니다.


Embarcadero Delphi XE 4  for Free Trial 30 days.


Download Link !!!


one - source code for Windows / Mac/ iOS Development


https://downloads.embarcadero.com/free/delphi




반응형
Posted by SB패밀리

댓글을 달아 주세요