Multi-platform App Development Course 1: Intro to Appmethod
-
Upload
independent -
Category
Documents
-
view
0 -
download
0
Transcript of Multi-platform App Development Course 1: Intro to Appmethod
FACULTY of COMPUTER SCIENCE
Multi-platform App Development
Course 1: Intro to Appmethod
Alexandru Balmuș
Embarcadero Technologies
Agenda
• Students Info (RO)
• Multi-platform development intro
• Appmethod demo
• Tour of the IDE
• Basic app structure
• Course overview
2
Agenda
• Teaching Team (Embarcadero Technologies):
– Alexandru Balmuș (Course): [email protected]
– Radu Grigoraș (Lab.): [email protected]
– Iulian Bodnărescu (Lab.): [email protected]
• Course page:
– http://profs.info.uaic.ro/~embt/DAM/
3
Agenda • (RO) EVALUARE
– Metode: Activitate de laborator, proiecte individuale şi/sau în echipă, evaluare pe parcurs
– Forme:
• Laborator (L): teme săptămânale de laborator individuale şi/sau în echipă
• Proiect (P): teme individuale şi/sau în echipă
• Testare (T): Doua teste scrise: săptămânile 8 si 15
– Ponderea formelor de evaluare în formula notei finale:
• Punctajul final se stabileşte ca sumă a punctajelor obţinute la laborator, la proiect și la test
• Pentru activitate deosebită se pot acorda bonusuri
• Nota Finală = 0.3*L + 0.3*P + 0.3*T + 1
– standardele minime de performanță:
• L >= 5; max. 2 absente / jumatate de semestru
• P >= 5
5
Multi-platform development intro
• Platform-specific development
Win SDK, Cocoa (OSX/iOS), Android SDK/NDK etc.
• Multi-platform development
- Scripting / VM based (e.g.: HTML5+JavaScript solutions)
- Native-code solutions
6
Multi-platform development intro
• Appmethod is an object-oriented, visual programming environment for rapid multi-platform application development (RAD) using a single code base.
• Appmethod provides the tools you need to model applications, design UIs, automatically generate and edit code. It also gives you tools to compile, debug, and deploy apps.
7
Programming language
Appmethod supports the C++ programming language ...
9 http://docwiki.appmethod.com/appmethod/1.15/topics/en/C%2B%2B_Reference
void __fastcall TfrmAboutSensors::CreateIfExists(TSensorCategory ASensorCategory)
{
TSensorArray LSensorArray = TSensorManager::Current->GetSensorsByCategory(ASensorCategory);
TListBoxGroupHeader * LHeader = new TListBoxGroupHeader(this->Owner);
LHeader->Parent = lbMain;
LHeader->Text = GetSensorCategoryName(ASensorCategory);
LHeader->Height = LHeader->Height * 2;
for (int i = 0; i < LSensorArray.Length; i++) {
TListBoxItem * LItem = new TListBoxItem(this->Owner);
LItem->Parent = lbMain;
LItem->Text = GetSensorType(LSensorArray[i]);
LItem->ItemData->Accessory = TListBoxItemData::TAccessory::aDetail;
LItem->Data = LSensorArray[i];
LItem->OnClick = ListBoxItemClick;
LItem->Height = LItem->Height * 2;
LItem->Font->Size = LItem->Font->Size * 2;
}
}
Programming language
... and also the Object Pascal (which will be used during this course).
10 http://docwiki.appmethod.com/appmethod/1.15/topics/en/Object_Pascal_Language_Guide_Index
procedure TfrmAboutSensors.CreateIfExists(ASensorCategory: TSensorCategory);
var
LSensorArray : TSensorArray;
LSensor : TCustomSensor;
LHeader : TListBoxGroupHeader;
LItem : TListBoxItem;
begin
LSensorArray := TSensorManager.Current.GetSensorsByCategory(ASensorCategory);
LHeader := TListBoxGroupHeader.Create(Owner);
LHeader.Parent := lbMain;
LHeader.Text := GetSensorCategoryName(ASensorCategory);
LHeader.Height := LHeader.Height * 2;
for LSensor in LSensorArray do
begin
LItem := TListBoxItem.Create(Owner);
LItem.Parent := lbMain;
LItem.Text := GetSensorType(LSensor);
LItem.ItemData.Accessory := TListBoxItemData.TAccessory.aDetail;
LItem.Data := LSensor;
LItem.OnClick := ListBoxItemClick;
LItem.Height := LItem.Height * 2;
LItem.Font.Size := LItem.Font.Size * 2;
end;
end;
Tour of the IDE
11 http://docwiki.appmethod.com/appmethod/1.15/topics/en/Tour_of_the_IDE_Index_(IDE_Tutorial)
-Welcome page is an integrated browser with getting started, code snippets and video resources. -You can build and deploy your first cross platform multi device app in minutes.
Tour of the IDE
13
For more references see http://docwiki.appmethod.com/appmethod/1.15/topics/en/Tutorial:_Using_the_IDE
Designing the UI
• FireMonkey offers fully customizable drag-and-drop controls: buttons, menus, combo/list boxes, panels, layouts, tables, tabs etc.
• UI can be shared between platforms
• You can also create your own components
http://docwiki.appmethod.com/appmethod/1.15/topics/en/FireMonkey_Quick_Start_Guide_-_Introduction
18
Data and connectivity
• Appmethod includes FireDAC, a set of data access
components which offer high performance native access to
SQL Server, Oracle, IBM DB2, MySQL, Sybase, Informix,
InterBase, Firebird, SQLite, PostgreSQL
21
Data and connectivity
• LiveBindings provides a visual way to bind objects to other objects or dataset fields
23
Data and connectivity
• Software technology that enables creation of multi-tier application.
• Applications running on mobile devices are discouraged from directly accessing remote database servers (i.e. SQL Server or MySQL).
• Allows the centralization of all application logic into a single place. This makes it easier to apply updates.
24
Data and connectivity
25
Logic
UI
TCP/IP
Client (presentation tier)
Data Server
UI
Command
Application Server
(logic tier)
Get/Set data
Processing
Command REST
Two tier vs Three tier applications – separation of logic from UI
Data Server
REST
Client (presentation tier)
Data and connectivity
• Typical services provided by “Cloud” technologies include:
– remote data storage
– remote processing
– messaging/alerting
• Advantages: centralization, cost, security and maintenance delegation, scalability.
26
FireMonkey 3D
• FireMonkey 3D apps provide a full GPU-powered 3D surface with lighting, textures, animation
• 3D controls objects, meshes can be imported (Collada, OBJ)
27
Images and animation
• ImageFX engine is built-in FMX and provides shader-powered GPU image processing without complex programming
• Can be used for image transformation, real-time effects, UI effects etc.
29
Images and animations
• All FireMonkey HD and 3D objects can be animated using timeline-based animation to create motion, transition and effects
• Animation can be hooked up to input controls and input methods such as mouse, touch and motion controllers
30
FMX Mobile
• With Appmethod you can build multi-device mobile applications which can run on the Android and iOS operating systems
• Support for both Object Pascal and C++
• Same FireMonkey UI
31
Tutorials
• http://docwiki.appmethod.com/appmethod/1.15/topics/en/Tutorials
33