├── AndroidManifest.template.xml
├── Entitlement.TemplateOSX32.xml
├── Entitlement.TemplateiOS.xml
├── Images
├── 01.png
├── 02.png
├── 03.png
├── 04.png
├── 09.png
├── 10.png
├── 11.png
├── 13.png
├── 50.png
└── background.jpg
├── MainFrm.fmx
├── MainFrm.pas
├── OW.API.pas
├── OW.Consts.pas
├── OW.Data.pas
├── OW.Graphics.Net.Helpers.pas
├── OpenWeather.res
├── OpenWeatherDemo.dpr
├── OpenWeatherDemo.dproj
├── README.md
├── info.plist.TemplateOSX.xml
└── info.plist.TemplateiOS.xml
/AndroidManifest.template.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 | <%uses-permission%>
12 |
13 |
21 |
22 | <%application-meta-data%>
23 | <%services%>
24 |
26 |
30 |
31 |
33 |
34 |
35 |
36 |
37 |
38 | <%activity%>
39 | <%receivers%>
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/Entitlement.TemplateOSX32.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%appSandboxKeys%>
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Entitlement.TemplateiOS.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%getTaskAllowKey%>
6 | <%applicationIdentifier%>
7 | <%pushNotificationKey%>
8 | <%keychainAccessGroups%>
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Images/01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/01.png
--------------------------------------------------------------------------------
/Images/02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/02.png
--------------------------------------------------------------------------------
/Images/03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/03.png
--------------------------------------------------------------------------------
/Images/04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/04.png
--------------------------------------------------------------------------------
/Images/09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/09.png
--------------------------------------------------------------------------------
/Images/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/10.png
--------------------------------------------------------------------------------
/Images/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/11.png
--------------------------------------------------------------------------------
/Images/13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/13.png
--------------------------------------------------------------------------------
/Images/50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/50.png
--------------------------------------------------------------------------------
/Images/background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/Images/background.jpg
--------------------------------------------------------------------------------
/MainFrm.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/MainFrm.pas
--------------------------------------------------------------------------------
/OW.API.pas:
--------------------------------------------------------------------------------
1 | unit OW.API;
2 |
3 | interface
4 |
5 | uses
6 | OW.Data;
7 |
8 | type
9 | TOpenWeatherByCoordsEvent = procedure(Sender: TObject; const ByCoords: TOpenWeatherByCoords) of object;
10 |
11 | TOpenWeatherRequest = (ByCoords);
12 |
13 | TOpenWeatherAPI = class(TObject)
14 | private
15 | FOnByCoords: TOpenWeatherByCoordsEvent;
16 | procedure DoByCoords(const AByCoords: TOpenWeatherByCoords);
17 | procedure DoProcessContent(const AContent: string; const ARequest: TOpenWeatherRequest);
18 | procedure DoProcessContentByCoords(const AContent: string);
19 | procedure DoSendRequest(const AURL: string; const ARequest: TOpenWeatherRequest);
20 | public
21 | procedure GetByCoords(const ALatitude, ALongitude: Double);
22 | property OnByCoords: TOpenWeatherByCoordsEvent read FOnByCoords write FOnByCoords;
23 | end;
24 |
25 | implementation
26 |
27 | uses
28 | System.Classes, System.Threading, System.SysUtils, System.Net.HttpClient, System.NetEncoding,
29 | REST.Json,
30 | OW.Consts;
31 |
32 | { TOpenWeatherAPI }
33 |
34 | procedure TOpenWeatherAPI.DoProcessContent(const AContent: string; const ARequest: TOpenWeatherRequest);
35 | begin
36 | case ARequest of
37 | TOpenWeatherRequest.ByCoords:
38 | DoProcessContentByCoords(AContent);
39 | end;
40 | end;
41 |
42 | procedure TOpenWeatherAPI.DoProcessContentByCoords(const AContent: string);
43 | var
44 | LByCoords: TOpenWeatherByCoords;
45 | begin
46 | try
47 | LByCoords := TJson.JsonToObject(AContent);
48 | TThread.Synchronize(nil,
49 | procedure
50 | begin
51 | DoByCoords(LByCoords);
52 | end
53 | );
54 | except
55 | // Left as an exercise to the reader
56 | end;
57 | end;
58 |
59 | procedure TOpenWeatherAPI.DoByCoords(const AByCoords: TOpenWeatherByCoords);
60 | begin
61 | if Assigned(FOnByCoords) then
62 | FOnByCoords(Self, AByCoords);
63 | end;
64 |
65 | procedure TOpenWeatherAPI.DoSendRequest(const AURL: string; const ARequest: TOpenWeatherRequest);
66 | var
67 | LHTTP: THTTPClient;
68 | LResponse: IHTTPResponse;
69 | begin
70 | LHTTP := THTTPClient.Create;
71 | try
72 | LResponse := LHTTP.Get(AURL);
73 | if LResponse.StatusCode = cHTTPResultOK then
74 | DoProcessContent(LResponse.ContentAsString, ARequest)
75 | else ; // Left as an exercise to the reader
76 | finally
77 | LHTTP.Free;
78 | end;
79 | end;
80 |
81 | procedure TOpenWeatherAPI.GetByCoords(const ALatitude, ALongitude: Double);
82 | var
83 | LQuery: string;
84 | begin
85 | LQuery := Format(cOpenWeatherByCoordsQuery, [cOpenWeatherAPIKey, ALatitude, ALongitude]);
86 | TTask.Run(
87 | procedure
88 | begin
89 | DoSendRequest(cOpenWeatherByCoordsURL + LQuery, TOpenWeatherRequest.ByCoords);
90 | end
91 | );
92 | end;
93 |
94 | end.
95 |
--------------------------------------------------------------------------------
/OW.Consts.pas:
--------------------------------------------------------------------------------
1 | unit OW.Consts;
2 |
3 | interface
4 |
5 | const
6 | cHTTPResultOK = 200;
7 | cOpenWeatherWeatherImagesURL = 'http://openweathermap.org/img/w/';
8 | cOpenWeatherByCoordsURL = 'http://api.openweathermap.org/data/2.5/weather?';
9 | cOpenWeatherByCoordsQuery = 'APPID=%s&lat=%.4f&lon=%.4f';
10 | cOpenWeatherAPIKey = You need to supply one
11 |
12 | implementation
13 |
14 | end.
15 |
--------------------------------------------------------------------------------
/OW.Data.pas:
--------------------------------------------------------------------------------
1 | unit OW.Data;
2 |
3 | interface
4 |
5 | (*
6 | Example:
7 |
8 | {
9 | "coord":{
10 | "lon":138.58,
11 | "lat":-34.89
12 | },
13 | "weather":[
14 | {
15 | "id":800,
16 | "main":"Clear",
17 | "description":"clear sky",
18 | "icon":"01d"
19 | }
20 | ],
21 | "base":"stations",
22 | "main":{
23 | "temp":292.15,
24 | "pressure":1020,
25 | "humidity":42,
26 | "temp_min":292.15,
27 | "temp_max":292.15
28 | },
29 | "visibility":10000,
30 | "wind":{
31 | "speed":5.7,
32 | "deg":240
33 | },
34 | "clouds":{
35 | "all":0
36 | },
37 | "dt":1494738000,
38 | "sys":{
39 | "type":1,
40 | "id":8204,
41 | "message":0.0044,
42 | "country":"AU",
43 | "sunrise":1494711125,
44 | "sunset":1494748298
45 | },
46 | "id":2062944,
47 | "name":"Prospect",
48 | "cod":200
49 | }
50 |
51 | *)
52 |
53 | type
54 | TOpenWeatherCoords = class(TObject)
55 | private
56 | Flon: Double;
57 | Flat: Double;
58 | public
59 | property lon: Double read Flon;
60 | property lat: Double read Flat;
61 | end;
62 |
63 | TOpenWeatherSys = class(TObject)
64 | private
65 | Fcountry: string;
66 | Fsunrise: Integer;
67 | Fsunset: Integer;
68 | public
69 | property country: string read Fcountry;
70 | property sunrise: Integer read Fsunrise;
71 | property sunset: Integer read Fsunset;
72 | end;
73 |
74 | TOpenWeatherWeatherItem = class(TObject)
75 | private
76 | Fid: Integer;
77 | Fmain: string;
78 | Fdescription: string;
79 | Ficon: string;
80 | public
81 | property id: Integer read Fid;
82 | property main: string read Fmain;
83 | property description: string read Fdescription;
84 | property icon: string read Ficon;
85 | end;
86 |
87 | TOpenWeatherWeather = array of TOpenWeatherWeatherItem;
88 |
89 | TOpenWeatherMain = class(TObject)
90 | private
91 | Ftemp: Double;
92 | Fhumidity: Double;
93 | Fpressure: Double;
94 | Ftemp_min: Double;
95 | Ftemp_max: Double;
96 | public
97 | property temp: Double read Ftemp;
98 | property humidity: Double read Fhumidity;
99 | property pressure: Double read Fpressure;
100 | property temp_min: Double read Ftemp_min;
101 | property temp_max: Double read Ftemp_max;
102 | end;
103 |
104 | TOpenWeatherWind = class(TObject)
105 | private
106 | Fspeed: Double;
107 | Fdegrees: Double;
108 | public
109 | property speed: Double read Fspeed;
110 | property degrees: Double read Fdegrees;
111 | end;
112 |
113 | TOpenWeatherClouds = class(TObject)
114 | private
115 | Fall: Double;
116 | public
117 | property all: Double read Fall;
118 | end;
119 |
120 | TOpenWeatherRain = class(TObject)
121 | private
122 | F3h: Double;
123 | public
124 | property vol3h: Double read F3h;
125 | end;
126 |
127 | TOpenWeatherByCoords = class(TObject)
128 | private
129 | Fcoord: TOpenWeatherCoords;
130 | Fsys: TOpenWeatherSys;
131 | Fweather: TOpenWeatherWeather;
132 | Fmain: TOpenWeatherMain;
133 | Fwind: TOpenWeatherWind;
134 | Frain: TOpenWeatherRain;
135 | Fclouds: TOpenWeatherClouds;
136 | Fdt: Integer;
137 | Fid: Integer;
138 | Fname: string;
139 | Fcod: Integer;
140 | public
141 | property coord: TOpenWeatherCoords read Fcoord;
142 | property sys: TOpenWeatherSys read Fsys;
143 | property weather: TOpenWeatherWeather read Fweather;
144 | property main: TOpenWeatherMain read Fmain;
145 | property wind: TOpenWeatherWind read Fwind;
146 | property rain: TOpenWeatherRain read Frain;
147 | property clouds: TOpenWeatherClouds read Fclouds;
148 | property dt: Integer read Fdt;
149 | property id: Integer read Fid;
150 | property name: string read Fname;
151 | property cod: Integer read Fcod;
152 | end;
153 |
154 | implementation
155 |
156 | end.
157 |
--------------------------------------------------------------------------------
/OW.Graphics.Net.Helpers.pas:
--------------------------------------------------------------------------------
1 | unit OW.Graphics.Net.Helpers;
2 |
3 | interface
4 |
5 | uses
6 | System.Classes,
7 | FMX.Graphics;
8 |
9 | type
10 | TBitmapHelper = class helper for TBitmap
11 | private
12 | procedure DoLoadFromURL(const AURL: string);
13 | procedure SynchedLoadFromStream(const AStream: TStream);
14 | public
15 | procedure LoadFromURL(const AURL: string);
16 | end;
17 |
18 | implementation
19 |
20 | uses
21 | System.Threading, System.Net.HttpClient;
22 |
23 | { TBitmapHelper }
24 |
25 | procedure TBitmapHelper.SynchedLoadFromStream(const AStream: TStream);
26 | begin
27 | TThread.Synchronize(nil,
28 | procedure
29 | begin
30 | LoadFromStream(AStream);
31 | end
32 | );
33 | end;
34 |
35 | procedure TBitmapHelper.DoLoadFromURL(const AURL: string);
36 | var
37 | LHTTP: THTTPClient;
38 | LResponse: IHTTPResponse;
39 | begin
40 | LHTTP := THTTPClient.Create;
41 | try
42 | LResponse := LHTTP.Get(AURL);
43 | if LResponse.StatusCode = 200 then
44 | SynchedLoadFromStream(LResponse.ContentStream)
45 | else ; // Left as an exercise to the reader
46 | finally
47 | LHTTP.Free;
48 | end;
49 | end;
50 |
51 | procedure TBitmapHelper.LoadFromURL(const AURL: string);
52 | begin
53 | TTask.Run(
54 | procedure
55 | begin
56 | DoLoadFromURL(AURL);
57 | end
58 | );
59 | end;
60 |
61 | end.
62 |
--------------------------------------------------------------------------------
/OpenWeather.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DelphiWorlds/OpenWeatherDemo/7080d75d93da19e24a9fab521428fe37ba093850/OpenWeather.res
--------------------------------------------------------------------------------
/OpenWeatherDemo.dpr:
--------------------------------------------------------------------------------
1 | program OpenWeatherDemo;
2 |
3 | uses
4 | System.StartUpCopy,
5 | FMX.Forms,
6 | MainFrm in 'MainFrm.pas' {frmMain},
7 | OW.Data in 'OW.Data.pas',
8 | OW.API in 'OW.API.pas',
9 | OW.Consts in 'OW.Consts.pas',
10 | OW.Graphics.Net.Helpers in 'OW.Graphics.Net.Helpers.pas';
11 |
12 | {$R *.res}
13 |
14 | begin
15 | Application.Initialize;
16 | Application.CreateForm(TfrmMain, frmMain);
17 | Application.Run;
18 | end.
19 |
--------------------------------------------------------------------------------
/OpenWeatherDemo.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {A73C145A-0844-471D-BDE3-2DB682E2F9FD}
4 | 18.2
5 | FMX
6 | OpenWeatherDemo.dpr
7 | True
8 | Debug
9 | Win32
10 | 1119
11 | Application
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Base
34 | true
35 |
36 |
37 | true
38 | Base
39 | true
40 |
41 |
42 | true
43 | Base
44 | true
45 |
46 |
47 | true
48 | Base
49 | true
50 |
51 |
52 | true
53 | Base
54 | true
55 |
56 |
57 | true
58 | Cfg_1
59 | true
60 | true
61 |
62 |
63 | true
64 | Cfg_1
65 | true
66 | true
67 |
68 |
69 | true
70 | Base
71 | true
72 |
73 |
74 | true
75 | Cfg_2
76 | true
77 | true
78 |
79 |
80 | true
81 | Cfg_2
82 | true
83 | true
84 |
85 |
86 | .\$(Platform)\$(Config)
87 | .\$(Platform)\$(Config)
88 | false
89 | false
90 | false
91 | false
92 | false
93 | RESTComponents;emsclientfiredac;FireDACIBDriver;emsclient;FireDACCommon;RESTBackendComponents;soapserver;CloudService;FireDACCommonDriver;inet;FireDAC;FireDACSqliteDriver;soaprtl;soapmidas;$(DCC_UsePackage)
94 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)
95 | true
96 | true
97 | true
98 | true
99 | true
100 | true
101 | true
102 | true
103 | true
104 | true
105 | $(BDS)\bin\delphi_PROJECTICON.ico
106 | $(BDS)\bin\delphi_PROJECTICNS.icns
107 | OpenWeatherDemo
108 |
109 |
110 | DBXSqliteDriver;DBXInterBaseDriver;DataSnapFireDAC;tethering;bindcompfmx;fmx;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;DbxCommonDriver;xmlrtl;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)
111 | package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=
112 | Debug
113 | true
114 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png
115 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png
116 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png
117 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png
118 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png
119 | $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png
120 | $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png
121 | $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png
122 | $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png
123 | android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar
124 |
125 |
126 | DBXSqliteDriver;DBXInterBaseDriver;DataSnapFireDAC;tethering;bindcompfmx;fmx;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;DbxCommonDriver;xmlrtl;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;fmxase;$(DCC_UsePackage)
127 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
128 | iPhoneAndiPad
129 | true
130 | Debug
131 | $(MSBuildProjectName)
132 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png
133 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png
134 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png
135 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png
136 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png
137 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png
138 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png
139 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png
140 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png
141 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png
142 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png
143 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png
144 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png
145 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png
146 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png
147 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png
148 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png
149 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png
150 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png
151 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png
152 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png
153 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png
154 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png
155 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png
156 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png
157 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png
158 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png
159 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png
160 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png
161 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png
162 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png
163 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png
164 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png
165 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png
166 |
167 |
168 | DBXSqliteDriver;DBXInterBaseDriver;DataSnapFireDAC;tethering;bindcompfmx;fmx;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;DbxCommonDriver;xmlrtl;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;fmxase;$(DCC_UsePackage)
169 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
170 | iPhoneAndiPad
171 | true
172 | Debug
173 | $(MSBuildProjectName)
174 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png
175 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png
176 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png
177 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png
178 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png
179 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png
180 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png
181 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png
182 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png
183 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png
184 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png
185 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png
186 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png
187 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png
188 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png
189 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png
190 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png
191 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png
192 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png
193 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png
194 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png
195 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png
196 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png
197 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png
198 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png
199 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png
200 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png
201 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png
202 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png
203 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png
204 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png
205 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png
206 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png
207 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png
208 |
209 |
210 | DBXSqliteDriver;DBXInterBaseDriver;DataSnapFireDAC;tethering;bindcompfmx;fmx;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;DbxCommonDriver;xmlrtl;DataSnapNativeClient;FireDACDSDriver;rtl;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;fmxase;$(DCC_UsePackage)
211 | CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSCameraUsageDescription=The reason for accessing the camera
212 | iPhoneAndiPad
213 | true
214 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png
215 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png
216 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png
217 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png
218 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png
219 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png
220 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png
221 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png
222 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png
223 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png
224 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png
225 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png
226 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png
227 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png
228 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png
229 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png
230 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png
231 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png
232 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png
233 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png
234 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png
235 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png
236 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png
237 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png
238 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png
239 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png
240 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png
241 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png
242 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png
243 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png
244 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png
245 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png
246 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png
247 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png
248 |
249 |
250 | DBXSqliteDriver;DataSnapServerMidas;DBXInterBaseDriver;DataSnapFireDAC;tethering;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;emsedge;fmx;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DBXMySQLDriver;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;emshosting;FireDACPgDriver;FireDACASADriver;FireDACTDataDriver;DbxCommonDriver;DataSnapServer;xmlrtl;DataSnapNativeClient;fmxobj;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;fmxase;$(DCC_UsePackage)
251 | CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts
252 | Debug
253 | true
254 |
255 |
256 | DBXSqliteDriver;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;DataSnapFireDAC;svnui;tethering;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;emsedge;fmx;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;DataSnapConnectors;VCLRESTComponents;vclie;bindengine;DBXMySQLDriver;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;DataSnapClient;bindcompdbx;IndyIPCommon;vcl;DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2Driver;TMSEditControlsDXE11;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;emshosting;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;DbxCommonDriver;DataSnapServer;xmlrtl;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;fmxase;$(DCC_UsePackage)
257 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
258 | Debug
259 | true
260 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
261 | 1033
262 | $(BDS)\bin\default_app.manifest
263 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
264 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
265 |
266 |
267 | DBXSqliteDriver;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;DataSnapFireDAC;tethering;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;emsedge;fmx;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;DataSnapConnectors;VCLRESTComponents;vclie;bindengine;DBXMySQLDriver;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;DataSnapClient;bindcompdbx;IndyIPCommon;vcl;DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;emshosting;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;DbxCommonDriver;DataSnapServer;xmlrtl;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;fmxase;$(DCC_UsePackage)
268 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)
269 | Debug
270 | true
271 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
272 | 1033
273 | $(BDS)\bin\default_app.manifest
274 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
275 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
276 |
277 |
278 | DEBUG;$(DCC_Define)
279 | true
280 | false
281 | true
282 | true
283 | true
284 |
285 |
286 | false
287 | true
288 | true
289 |
290 |
291 | true
292 | true
293 |
294 |
295 | false
296 | RELEASE;$(DCC_Define)
297 | 0
298 | 0
299 |
300 |
301 | true
302 | true
303 |
304 |
305 | true
306 | true
307 |
308 |
309 |
310 | MainSource
311 |
312 |
313 |
314 | fmx
315 |
316 |
317 |
318 |
319 |
320 |
321 | Cfg_2
322 | Base
323 |
324 |
325 | Base
326 |
327 |
328 | Cfg_1
329 | Base
330 |
331 |
332 |
333 | Delphi.Personality.12
334 | Application
335 |
336 |
337 |
338 | OpenWeatherDemo.dpr
339 |
340 |
341 |
342 |
343 |
344 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
345 | 03.png
346 | true
347 |
348 |
349 |
350 |
351 | OpenWeatherDemo
352 | true
353 |
354 |
355 |
356 |
357 | .\assets\internal\Images
358 | 09.png
359 | true
360 |
361 |
362 | .\StartUp\Documents\Images
363 | 09.png
364 | true
365 |
366 |
367 | .\StartUp\Documents\Images
368 | 09.png
369 | true
370 |
371 |
372 | .\StartUp\Documents\Images
373 | 09.png
374 | true
375 |
376 |
377 |
378 |
379 | Default-568h@2x.png
380 | true
381 |
382 |
383 |
384 |
385 | true
386 |
387 |
388 |
389 |
390 | true
391 |
392 |
393 |
394 |
395 | splash_image.png
396 | true
397 |
398 |
399 |
400 |
401 | Default-667h@2x.png
402 | true
403 |
404 |
405 |
406 |
407 | true
408 |
409 |
410 |
411 |
412 | true
413 |
414 |
415 |
416 |
417 | Default@2x.png
418 | true
419 |
420 |
421 |
422 |
423 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
424 | 01.png
425 | true
426 |
427 |
428 |
429 |
430 | Default-Portrait@2x.png
431 | true
432 |
433 |
434 |
435 |
436 | OpenWeather.icns
437 | true
438 |
439 |
440 |
441 |
442 | true
443 |
444 |
445 |
446 |
447 | true
448 |
449 |
450 |
451 |
452 | Default.png
453 | true
454 |
455 |
456 |
457 |
458 | splash_image.png
459 | true
460 |
461 |
462 |
463 |
464 | true
465 |
466 |
467 |
468 |
469 | OpenWeather
470 | true
471 |
472 |
473 |
474 |
475 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
476 | 11.png
477 | true
478 |
479 |
480 |
481 |
482 | true
483 |
484 |
485 |
486 |
487 | OpenWeatherDemo
488 | true
489 |
490 |
491 |
492 |
493 | true
494 |
495 |
496 |
497 |
498 | ic_launcher.png
499 | true
500 |
501 |
502 |
503 |
504 | Default~ipad.png
505 | true
506 |
507 |
508 |
509 |
510 | true
511 |
512 |
513 |
514 |
515 | ic_launcher.png
516 | true
517 |
518 |
519 |
520 |
521 | splash_image.png
522 | true
523 |
524 |
525 |
526 |
527 | .\assets\internal\Images
528 | 10.png
529 | true
530 |
531 |
532 | .\StartUp\Documents\Images
533 | 10.png
534 | true
535 |
536 |
537 | .\StartUp\Documents\Images
538 | 10.png
539 | true
540 |
541 |
542 | .\StartUp\Documents\Images
543 | 10.png
544 | true
545 |
546 |
547 |
548 |
549 | splash_image.png
550 | true
551 |
552 |
553 |
554 |
555 | libOpenWeather.so
556 | true
557 |
558 |
559 |
560 |
561 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
562 | 01.png
563 | true
564 |
565 |
566 |
567 |
568 | true
569 |
570 |
571 |
572 |
573 | true
574 |
575 |
576 |
577 |
578 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
579 | 50.png
580 | true
581 |
582 |
583 |
584 |
585 | true
586 |
587 |
588 |
589 |
590 | ic_launcher.png
591 | true
592 |
593 |
594 |
595 |
596 | libOpenWeatherDemo.so
597 | true
598 |
599 |
600 |
601 |
602 | Info.plist
603 | true
604 |
605 |
606 |
607 |
608 | classes.dex
609 | true
610 |
611 |
612 |
613 |
614 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
615 | 50.png
616 | true
617 |
618 |
619 |
620 |
621 | true
622 |
623 |
624 |
625 |
626 | Default-736h@3x.png
627 | true
628 |
629 |
630 |
631 |
632 | true
633 |
634 |
635 |
636 |
637 | .\assets\internal\Images
638 | 03.png
639 | true
640 |
641 |
642 | .\StartUp\Documents\Images
643 | 03.png
644 | true
645 |
646 |
647 | .\StartUp\Documents\Images
648 | 03.png
649 | true
650 |
651 |
652 | .\StartUp\Documents\Images
653 | 03.png
654 | true
655 |
656 |
657 |
658 |
659 | ic_launcher.png
660 | true
661 |
662 |
663 |
664 |
665 | .\assets\internal\Images
666 | 13.png
667 | true
668 |
669 |
670 | .\Startup\Documents\Images
671 | 13.png
672 | true
673 |
674 |
675 | .\Startup\Documents\Images
676 | 13.png
677 | true
678 |
679 |
680 | .\Startup\Documents\Images
681 | 13.png
682 | true
683 |
684 |
685 |
686 |
687 | .\assets\internal\Images
688 | 04.png
689 | true
690 |
691 |
692 | .\StartUp\Documents\Images
693 | 04.png
694 | true
695 |
696 |
697 | .\StartUp\Documents\Images
698 | 04.png
699 | true
700 |
701 |
702 | .\StartUp\Documents\Images
703 | 04.png
704 | true
705 |
706 |
707 |
708 |
709 | true
710 |
711 |
712 |
713 |
714 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
715 | 04.png
716 | true
717 |
718 |
719 |
720 |
721 | splash_image.png
722 | true
723 |
724 |
725 |
726 |
727 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
728 | 13.png
729 | true
730 |
731 |
732 |
733 |
734 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
735 | 03.png
736 | true
737 |
738 |
739 |
740 |
741 | true
742 |
743 |
744 |
745 |
746 | Info.plist
747 | true
748 |
749 |
750 |
751 |
752 | ic_launcher.png
753 | true
754 |
755 |
756 |
757 |
758 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
759 | 09.png
760 | true
761 |
762 |
763 |
764 |
765 | .\assets\internal\Images
766 | 11.png
767 | true
768 |
769 |
770 | .\StartUp\Documents\Images
771 | 11.png
772 | true
773 |
774 |
775 | .\StartUp\Documents\Images
776 | 11.png
777 | true
778 |
779 |
780 | .\StartUp\Documents\Images
781 | 11.png
782 | true
783 |
784 |
785 |
786 |
787 | true
788 |
789 |
790 |
791 |
792 | .\assets\internal\Images
793 | 01.png
794 | true
795 |
796 |
797 | .\StartUp\Documents\Images
798 | 01.png
799 | true
800 |
801 |
802 | .\StartUp\Documents\Images
803 | 01.png
804 | true
805 |
806 |
807 | .\StartUp\Documents\Images
808 | 01.png
809 | true
810 |
811 |
812 |
813 |
814 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
815 | 13.png
816 | true
817 |
818 |
819 |
820 |
821 | .\assets\internal\Images
822 | 02.png
823 | true
824 |
825 |
826 | .\StartUp\Documents\Images
827 | 02.png
828 | true
829 |
830 |
831 | .\StartUp\Documents\Images
832 | 02.png
833 | true
834 |
835 |
836 | .\StartUp\Documents\Images
837 | 02.png
838 | true
839 |
840 |
841 |
842 |
843 | ic_launcher.png
844 | true
845 |
846 |
847 |
848 |
849 | true
850 |
851 |
852 |
853 |
854 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
855 | 04.png
856 | true
857 |
858 |
859 |
860 |
861 | .\assets\internal\Images
862 | 03.png
863 | true
864 |
865 |
866 | .\StartUp\Documents\Images
867 | 03.png
868 | true
869 |
870 |
871 | .\StartUp\Documents\Images
872 | 03.png
873 | true
874 |
875 |
876 | .\StartUp\Documents\Images
877 | 03.png
878 | true
879 |
880 |
881 |
882 |
883 | true
884 |
885 |
886 |
887 |
888 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
889 | 02.png
890 | true
891 |
892 |
893 |
894 |
895 | .\assets\internal\Images
896 | 04.png
897 | true
898 |
899 |
900 | .\StartUp\Documents\Images
901 | 04.png
902 | true
903 |
904 |
905 | .\StartUp\Documents\Images
906 | 04.png
907 | true
908 |
909 |
910 | .\StartUp\Documents\Images
911 | 04.png
912 | true
913 |
914 |
915 |
916 |
917 | true
918 |
919 |
920 |
921 |
922 | libOpenWeather.so
923 | true
924 |
925 |
926 |
927 |
928 | true
929 |
930 |
931 |
932 |
933 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
934 | 10.png
935 | true
936 |
937 |
938 |
939 |
940 | true
941 |
942 |
943 |
944 |
945 | true
946 |
947 |
948 |
949 |
950 | libOpenWeather.so
951 | true
952 |
953 |
954 |
955 |
956 | ic_launcher.png
957 | true
958 |
959 |
960 |
961 |
962 | libOpenWeather.so
963 | true
964 |
965 |
966 |
967 |
968 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
969 | 11.png
970 | true
971 |
972 |
973 |
974 |
975 | true
976 |
977 |
978 |
979 |
980 | ic_launcher.png
981 | true
982 |
983 |
984 |
985 |
986 | Default-Portrait@2x~ipad.png
987 | true
988 |
989 |
990 |
991 |
992 | Default-Landscape@2x.png
993 | true
994 |
995 |
996 |
997 |
998 | true
999 |
1000 |
1001 |
1002 |
1003 | true
1004 |
1005 |
1006 |
1007 |
1008 | classes.dex
1009 | true
1010 |
1011 |
1012 |
1013 |
1014 | splash_image.png
1015 | true
1016 |
1017 |
1018 |
1019 |
1020 | Default-Portrait~ipad.png
1021 | true
1022 |
1023 |
1024 |
1025 |
1026 | .\assets\internal\Images
1027 | 02.png
1028 | true
1029 |
1030 |
1031 | .\StartUp\Documents\Images
1032 | 02.png
1033 | true
1034 |
1035 |
1036 | .\StartUp\Documents\Images
1037 | 02.png
1038 | true
1039 |
1040 |
1041 | .\StartUp\Documents\Images
1042 | 02.png
1043 | true
1044 |
1045 |
1046 |
1047 |
1048 | splash_image.png
1049 | true
1050 |
1051 |
1052 |
1053 |
1054 | ic_launcher.png
1055 | true
1056 |
1057 |
1058 |
1059 |
1060 | true
1061 |
1062 |
1063 |
1064 |
1065 | .\assets\internal\Images
1066 | 01.png
1067 | true
1068 |
1069 |
1070 | .\StartUp\Documents\Images
1071 | 01.png
1072 | true
1073 |
1074 |
1075 | .\StartUp\Documents\Images
1076 | 01.png
1077 | true
1078 |
1079 |
1080 | .\StartUp\Documents\Images
1081 | 01.png
1082 | true
1083 |
1084 |
1085 |
1086 |
1087 | true
1088 |
1089 |
1090 |
1091 |
1092 | true
1093 |
1094 |
1095 |
1096 |
1097 | Default-Landscape-736h@3x.png
1098 | true
1099 |
1100 |
1101 |
1102 |
1103 | true
1104 |
1105 |
1106 |
1107 |
1108 | .\assets\internal\Images
1109 | 50.png
1110 | true
1111 |
1112 |
1113 | .\StartUp\Documents\Images
1114 | 50.png
1115 | true
1116 |
1117 |
1118 | .\StartUp\Documents\Images
1119 | 50.png
1120 | true
1121 |
1122 |
1123 | .\StartUp\Documents\Images
1124 | 50.png
1125 | true
1126 |
1127 |
1128 |
1129 |
1130 | .\assets\internal\Images
1131 | 10.png
1132 | true
1133 |
1134 |
1135 | .\StartUp\Documents\Images
1136 | 10.png
1137 | true
1138 |
1139 |
1140 | .\StartUp\Documents\Images
1141 | 10.png
1142 | true
1143 |
1144 |
1145 | .\StartUp\Documents\Images
1146 | 10.png
1147 | true
1148 |
1149 |
1150 |
1151 |
1152 | .\assets\internal\Images
1153 | 50.png
1154 | true
1155 |
1156 |
1157 | .\StartUp\Documents\Images
1158 | 50.png
1159 | true
1160 |
1161 |
1162 | .\StartUp\Documents\Images
1163 | 50.png
1164 | true
1165 |
1166 |
1167 | .\StartUp\Documents\Images
1168 | 50.png
1169 | true
1170 |
1171 |
1172 |
1173 |
1174 | OpenWeatherDemo.exe
1175 | true
1176 |
1177 |
1178 |
1179 |
1180 | ic_launcher.png
1181 | true
1182 |
1183 |
1184 |
1185 |
1186 | .\assets\internal\Images
1187 | 09.png
1188 | true
1189 |
1190 |
1191 | .\StartUp\Documents\Images
1192 | 09.png
1193 | true
1194 |
1195 |
1196 | .\StartUp\Documents\Images
1197 | 09.png
1198 | true
1199 |
1200 |
1201 | .\StartUp\Documents\Images
1202 | 09.png
1203 | true
1204 |
1205 |
1206 |
1207 |
1208 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
1209 | 10.png
1210 | true
1211 |
1212 |
1213 |
1214 |
1215 | splash_image.png
1216 | true
1217 |
1218 |
1219 |
1220 |
1221 | libOpenWeatherDemo.so
1222 | true
1223 |
1224 |
1225 |
1226 |
1227 | .\assets\internal\Images
1228 | 11.png
1229 | true
1230 |
1231 |
1232 | .\StartUp\Documents\Images
1233 | 11.png
1234 | true
1235 |
1236 |
1237 | .\StartUp\Documents\Images
1238 | 11.png
1239 | true
1240 |
1241 |
1242 | .\StartUp\Documents\Images
1243 | 11.png
1244 | true
1245 |
1246 |
1247 |
1248 |
1249 | Default-Landscape.png
1250 | true
1251 |
1252 |
1253 |
1254 |
1255 | true
1256 |
1257 |
1258 |
1259 |
1260 | true
1261 |
1262 |
1263 |
1264 |
1265 | true
1266 |
1267 |
1268 |
1269 |
1270 | ResourceRules.plist
1271 | true
1272 |
1273 |
1274 |
1275 |
1276 | Default-Landscape@2x~ipad.png
1277 | true
1278 |
1279 |
1280 |
1281 |
1282 | .\assets\internal\Images
1283 | 13.png
1284 | true
1285 |
1286 |
1287 | .\Startup\Documents\Images
1288 | 13.png
1289 | true
1290 |
1291 |
1292 | .\Startup\Documents\Images
1293 | 13.png
1294 | true
1295 |
1296 |
1297 | .\Startup\Documents\Images
1298 | 13.png
1299 | true
1300 |
1301 |
1302 |
1303 |
1304 | Default-Landscape~ipad.png
1305 | true
1306 |
1307 |
1308 |
1309 |
1310 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
1311 | 02.png
1312 | true
1313 |
1314 |
1315 |
1316 |
1317 | Contents\Resources\StartUp\Documents\OpenWeatherDemo\Images
1318 | 09.png
1319 | true
1320 |
1321 |
1322 |
1323 |
1324 | 1
1325 |
1326 |
1327 | Contents\MacOS
1328 | 1
1329 |
1330 |
1331 | Contents\MacOS
1332 | 0
1333 |
1334 |
1335 |
1336 |
1337 | classes
1338 | 1
1339 |
1340 |
1341 |
1342 |
1343 | library\lib\armeabi-v7a
1344 | 1
1345 |
1346 |
1347 |
1348 |
1349 | library\lib\armeabi
1350 | 1
1351 |
1352 |
1353 |
1354 |
1355 | library\lib\mips
1356 | 1
1357 |
1358 |
1359 |
1360 |
1361 | library\lib\armeabi-v7a
1362 | 1
1363 |
1364 |
1365 |
1366 |
1367 | res\drawable
1368 | 1
1369 |
1370 |
1371 |
1372 |
1373 | res\values
1374 | 1
1375 |
1376 |
1377 |
1378 |
1379 | res\drawable
1380 | 1
1381 |
1382 |
1383 |
1384 |
1385 | res\drawable-xxhdpi
1386 | 1
1387 |
1388 |
1389 |
1390 |
1391 | res\drawable-ldpi
1392 | 1
1393 |
1394 |
1395 |
1396 |
1397 | res\drawable-mdpi
1398 | 1
1399 |
1400 |
1401 |
1402 |
1403 | res\drawable-hdpi
1404 | 1
1405 |
1406 |
1407 |
1408 |
1409 | res\drawable-xhdpi
1410 | 1
1411 |
1412 |
1413 |
1414 |
1415 | res\drawable-small
1416 | 1
1417 |
1418 |
1419 |
1420 |
1421 | res\drawable-normal
1422 | 1
1423 |
1424 |
1425 |
1426 |
1427 | res\drawable-large
1428 | 1
1429 |
1430 |
1431 |
1432 |
1433 | res\drawable-xlarge
1434 | 1
1435 |
1436 |
1437 |
1438 |
1439 | 1
1440 |
1441 |
1442 | Contents\MacOS
1443 | 1
1444 |
1445 |
1446 | 0
1447 |
1448 |
1449 |
1450 |
1451 | Contents\MacOS
1452 | 1
1453 | .framework
1454 |
1455 |
1456 | 0
1457 |
1458 |
1459 |
1460 |
1461 | 1
1462 | .dylib
1463 |
1464 |
1465 | 1
1466 | .dylib
1467 |
1468 |
1469 | 1
1470 | .dylib
1471 |
1472 |
1473 | Contents\MacOS
1474 | 1
1475 | .dylib
1476 |
1477 |
1478 | 0
1479 | .dll;.bpl
1480 |
1481 |
1482 |
1483 |
1484 | 1
1485 | .dylib
1486 |
1487 |
1488 | 1
1489 | .dylib
1490 |
1491 |
1492 | 1
1493 | .dylib
1494 |
1495 |
1496 | Contents\MacOS
1497 | 1
1498 | .dylib
1499 |
1500 |
1501 | 0
1502 | .bpl
1503 |
1504 |
1505 |
1506 |
1507 | 0
1508 |
1509 |
1510 | 0
1511 |
1512 |
1513 | 0
1514 |
1515 |
1516 | 0
1517 |
1518 |
1519 | Contents\Resources\StartUp\
1520 | 0
1521 |
1522 |
1523 | 0
1524 |
1525 |
1526 |
1527 |
1528 | 1
1529 |
1530 |
1531 | 1
1532 |
1533 |
1534 | 1
1535 |
1536 |
1537 |
1538 |
1539 | 1
1540 |
1541 |
1542 | 1
1543 |
1544 |
1545 | 1
1546 |
1547 |
1548 |
1549 |
1550 | 1
1551 |
1552 |
1553 | 1
1554 |
1555 |
1556 | 1
1557 |
1558 |
1559 |
1560 |
1561 | 1
1562 |
1563 |
1564 | 1
1565 |
1566 |
1567 | 1
1568 |
1569 |
1570 |
1571 |
1572 | 1
1573 |
1574 |
1575 | 1
1576 |
1577 |
1578 | 1
1579 |
1580 |
1581 |
1582 |
1583 | 1
1584 |
1585 |
1586 | 1
1587 |
1588 |
1589 | 1
1590 |
1591 |
1592 |
1593 |
1594 | 1
1595 |
1596 |
1597 | 1
1598 |
1599 |
1600 | 1
1601 |
1602 |
1603 |
1604 |
1605 | 1
1606 |
1607 |
1608 |
1609 |
1610 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
1611 | 1
1612 |
1613 |
1614 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
1615 | 1
1616 |
1617 |
1618 |
1619 |
1620 | 1
1621 |
1622 |
1623 | 1
1624 |
1625 |
1626 |
1627 |
1628 | ..\
1629 | 1
1630 |
1631 |
1632 | ..\
1633 | 1
1634 |
1635 |
1636 |
1637 |
1638 | 1
1639 |
1640 |
1641 | 1
1642 |
1643 |
1644 | 1
1645 |
1646 |
1647 |
1648 |
1649 | 1
1650 |
1651 |
1652 | 1
1653 |
1654 |
1655 | 1
1656 |
1657 |
1658 |
1659 |
1660 | ..\
1661 | 1
1662 |
1663 |
1664 |
1665 |
1666 | Contents
1667 | 1
1668 |
1669 |
1670 |
1671 |
1672 | Contents\Resources
1673 | 1
1674 |
1675 |
1676 |
1677 |
1678 | library\lib\armeabi-v7a
1679 | 1
1680 |
1681 |
1682 | 1
1683 |
1684 |
1685 | 1
1686 |
1687 |
1688 | 1
1689 |
1690 |
1691 | 1
1692 |
1693 |
1694 | Contents\MacOS
1695 | 1
1696 |
1697 |
1698 | 0
1699 |
1700 |
1701 |
1702 |
1703 | 1
1704 |
1705 |
1706 | 1
1707 |
1708 |
1709 |
1710 |
1711 | Assets
1712 | 1
1713 |
1714 |
1715 | Assets
1716 | 1
1717 |
1718 |
1719 |
1720 |
1721 | Assets
1722 | 1
1723 |
1724 |
1725 | Assets
1726 | 1
1727 |
1728 |
1729 |
1730 |
1731 |
1732 |
1733 |
1734 |
1735 |
1736 |
1737 |
1738 |
1739 | True
1740 | True
1741 | True
1742 | True
1743 | True
1744 | True
1745 | True
1746 |
1747 |
1748 | 12
1749 |
1750 |
1751 |
1752 |
1753 |
1754 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # OpenWeatherDemo
2 |
3 | Demo app for the article as published on Delphi Worlds:
4 |
5 | http://www.delphiworlds.com
6 |
7 | Blog article:
8 |
9 | http://delphiworlds.com/2017/05/cross-platform-delphi-easy/
10 |
11 |
--------------------------------------------------------------------------------
/info.plist.TemplateOSX.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%VersionInfoPListKeys%>
6 | <%ExtraInfoPListKeys%>
7 |
8 |
9 |
--------------------------------------------------------------------------------
/info.plist.TemplateiOS.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%VersionInfoPListKeys%>
6 | <%ExtraInfoPListKeys%>
7 |
8 |
9 |
--------------------------------------------------------------------------------