Eseményvezérelt alkalmazások fejlesztése II 10. előadás. Xamarin alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar
|
|
- Nóra Tóth
- 8 évvel ezelőtt
- Látták:
Átírás
1 Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 10. előadás Xamarin alapismeretek Giachetta Roberto
2 A Xamarin platform A Xamarin egy többplatformos szoftverfejlesztői környezet, amely lehetőséget ad Android, ios, Windows Phone (8+) és Windows (8+) alkalmazások fejlesztésére a.net keretrendszerre alapozva lehetőséget ad közös kódbázissal rendelkező alkalmazások fejlesztésére, amelyeket natív alkalmazásokká (Objective-C, Java, ) fordít át a Xamarin.Forms csomag az architektúrát (MVVM) és a grafikus felületet is egységesíti alapja a Mono, amely a.net keretrendszer alternatív megvalósítása Linux és MacOS rendszerekre a programcsomagok NuGet segítségével kezelhetők és frissíthetők ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:2
3 Alkalmazások felépítése Desktop alkalmazás C# kód (WinForms/WPF) közös C# kódbázis (üzleti logika) Portable Class Library Windows (Phone) alkalmazás C# kód (WinRT, UWP) Android C# kód (vezérlés, megjelenítés, perzisztencia) ios C# kód (vezérlés, megjelenítés, perzisztencia) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:3
4 Xamarin.Forms alkalmazások felépítése Xamarin.Forms alkalmazások esetén a közös programegységek (osztálykönyvtárak) tartalmazzák a modellt, amely tartalmazza az üzleti logikát, szokványos eszközök segítségével felépítve a nézetmodellt, amelyet az alapvető eszközök segítségével tudunk felépíteni (ICommand, INotifyPropertyChange, ) a nézetet, amely XAML alapon írunk le, és adatkötés (Binding) segítségével kapcsoljuk a nézetmodellhez az alkalmazás vezérlését (App), amely meghatározza a közös viselkedést minden platformon a perzisztencia interfészét, a konkrét megvalósítás nélkül, amely platformonként eltérhet ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:4
5 Xamarin.Forms alkalmazások felépítése Az alkalmazások közös funkcionalitást Portable Class Library segítségével valósíthatjuk meg a közös programegységek is felruházhatóak platformspecifikus jellemzőkkel (Device) A platformspecifikus programegységek (Android, ios, Windows, WindowsPhone) tovább bővíthetik a közös funkcionalitást tartalmazza a perzisztencia megvalósítását, mivel az adattárolás módja platformonként eltér tartalmazhatnak speciális nézetbeli elemeket, amelyek adott platformban érhetőek csak el, illetve lehetőséget a nézet adaptálására (pl. Material Design) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:5
6 Xamarin.Forms alkalmazások felépítése Desktop alkalmazás C# kód (WinForms/WPF) közös C# kódbázis (üzleti logika) Xamarin.Forms kódbázis (vezérlés, nézet, nézetmodell) Portable Class Library Xamarin.Forms Portable Class Library Android C# kód (perzisztencia, ) ios C# kód (perzisztencia, ) Windows C# kód (perzisztencia, ) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:6
7 Xamarin.Forms alkalmazások felépítése Azt alkalmazások számára a közös belépési pontot az alkalmazás (Application) jelenti tartalmazza a nyitóképernyőt (MainPage), valamint az alkalmazás életciklus eseménykezelőit (OnStart, OnResume, OnSleep) kezeli az alkalmazás tulajdonságait (Properties), erőforrásait (Resources) Az alkalmazást minden platform egyedileg kezeli és tölti be, pl.: Android platformon a főtevékenység (MainActivity) létrehozáskor (OnCreate) Windows platformon a főképernyő (MainPage) a konstruktor lefutásakor ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:7
8 Xamarin.Forms grafikus felület felépítése A Xamarin.Forms alkalmazások egy egységes grafikus felülettel rendelkeznek, amelyeket a platform egyedi vezérlőire fordít le a rendszer a felület lapokból (Page) áll, amelyek különböző felépítéssel rendelkezhetnek pl. egyszerű tartalom (ContentPage), többlapos (TabbedPage), húzható (CarouselPage), többnézetű (MasterDetailPage) a lapoknak lehet címe (Title), háttere (BackgroundImage) és ikonja (Icon), valamint platformspecifikus eszköztára (ToolbarItems) megjeleníthetnek üzeneteket (DisplayAlert), valamint választódialógust (DisplayActionSheet) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:8
9 Xamarin.Forms grafikus felület felépítése a tartalmat elrendező (Layout) elemekkel igazíthatjuk el, pl. rács (Grid), vízszintes/függőleges lista (StackLayout), abszolút pozíciós (AbsoluteLayout), relatív pozíciós (RelativeLayout) a tartalmat nézet (View) elemekből építhetjük fel, pl. Label, Button, DatePicker, Entry (egy soros szövegdoboz), Editor (több soros szövegdoboz), Picker (kiválasztó), TableView, Image, WebView a nézeten megjelenő betűk alapértelmezetten platformspecifikusak, és mértük is platformnak megfelelően szabályozható (Small, Medium, ) lehetőségünk van egyedileg formázott szöveg megjelenítésére (FormattedString) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:9
10 Xamarin.Forms grafikus felület felépítése Pl.: <ContentPage > <!-- tartalomlap, amely lehet az alkalmazás képernyője --> <StackLayout Orientation="Vertical"> <!-- függőleges elrendező --> <Label Text="Hello, Xamarin!" Margin="5" FontSize="Large"/> <!-- címke --> <Button Clicked="Button_Clicked" Text="Go on " HorizontalOptions="Center" Margin="10" /> <! gomb eseménykezelővel --> </StackLayout> </ItemsControl> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:10
11 Alkalmazás tulajdonságok és kiehlyezés Az alkalmazások tulajdonságait, képességeit az alkalmazás leíró (application manifest) segítségével írhatjuk le tartalmazza az alkalmazás nevét, leírását, verzióját és a fejlesztő adatait megadja az engedélyeket a rendszerhez, és más alkalmazásokhoz, pl. internet, kamera, pozicionálás, telefonkönyv, Android esetén az AndroidManifest.xml fájl, Windows esetén a Package.appmanifest fájl tartalmazza a leírást A megfelelően konfigurált alkalmazások kihelyezhetőek fizikai eszközökre, illetve elhelyezhetőek a platform alkalmazásboltjában is, ehhez az alkalmazást megfelelő aláírással kell ellátnunk, amely szintén platformspecifikus ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:11
12 Alkalmazás erőforrások Az alkalmazások rendelkezhetnek platformfüggetlen, és platformfüggő erőforrásokkal a nézethez használat erőforrások (stílusok, animációk, ) a nézetben direkt (Resources), vagy erőforrásgyűjtemény (ResourceDictionary) formájában lehetnek jelen az Android platform megkülönbözteti a felügyelt erőforrásokat (Resources), amelyek tartalmat egyedileg illeszti be az alkalmazásba (pl. ikon) a felügyeletmentes erőforrásokat (Assets), amelyek tartalma nyersen kerül az alkalmazásba a Windows platform speciális erőforrásként kezeli az alkalmazás ikonjait (Assets) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:12
13 Példa Feladat: Készítsünk egy egyszerű számológépet, amellyel a négy alapműveletet végezhetjük el, illetve láthatjuk korábbi műveleteinket is. a modell (CalculatorModel) biztosítja a számológép funkcionalitást, ezt újrahasznosítjuk a nézetben (MainPage) elhelyezünk egy rácsot, benne a beviteli mezőt (Entry), a gombokat (Button), valamint a számítások listáját (Label) a gombokhoz közös eseménykezelőt rendelünk (Button_Blick), és a gomb szövege alapján döntünk a műveletről az eredményről figyelmeztető üzenetet küldünk (DisplayAlert) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:13
14 Példa Tervezés: - _model :CalculatorModel View::MainPage ContentPage + MainPage() - Model_CalculationPerformed(object, CalculatorEventArgs) :void - Button_Click(object, EventArgs) :void «async» - PerformCalculation(Operation) :void Application App -_model + App() Model::CalculatorModel - _result :Double - _operation :Operation + CalculatorModel() + Calculate(Double, Operation) :void - OnCalculationPerformed(String) :void «property» + Result() :Double «event» + CalculationPerformed() :EventHandler<CalculatorEventArgs> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:14
15 MVVM architektúra A Xamarin.Forms támogatja az MVVM architektúra alapú fejlesztést, így biztosított az adatkötés (Binding) a nézet oldalon, amelynek megadhatunk tetszőleges forrást (BindingContext) minden vezérlőnek külön is megadható forrás a BindingContext tulajdonság segítségével az elnevezett elemekre (x:name) is hivatkozhatunk a kötésben (x:reference), pl.: <Label x:name="somelabel" /> <Label Text="{Binding Source={x:Reference somelable}, Path=Text}" /> <!-- a két címke ugyanazt írja ki --> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:15
16 MVVM architektúra a változásjelzés (INotifyPropertyChanged, ObservableCollection), valamint a parancsvégrehajtás (ICommand, Command, Command<T>) nézetmodell oldalon az alkalmazás vezérlése az alkalmazás (App osztály) segítségével a nézet adatforrását a MainPage tulajdonság BindingContext tulajdonságán keresztül adhatjuk meg, pl.: ViewModel viewmodel = new ViewModel(model); MainPage = new MainPage(); MainPage.BindingContext = viewmodel; // nézetmodell befecskendezése a nézet cseréjét a MainPage tulajdonságon keresztül végezhetjük, ám ehelyett célszerű több lapot tartalmazó nézet használata (pl. TabbedPage, MasterDetailPage) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:16
17 Példa Feladat: Készítsünk egy egyszerű számológépet, amellyel a négy alapműveletet végezhetjük el, illetve láthatjuk korábbi műveleteinket is. valósítsunk meg MVVM architektúrát a nézetmodell kiemelésével a nézetmodell (CalculatorViewModel) tartalmazza az aktuális értéket (NumberFieldValue), a számítások listáját (Calculations) és a számítást parancs formájában (CalculateCommand) a számítási hibákkal kapcsolatosan eseményt küld (ErrorOccured) az alkalmazás példányosítja és összeállítja az alkalmazás rétegeit, és kezeli a számítási hibák eseményeit ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:17
18 Példa Tervezés: App Application + App() - ViewModel_ErrorOccured(object, ErrorMessageEventArgs) :void Model::CalculatorModel -_model - _model :CalculatorModel - _numberfieldvalue :String INotifyPropertyChanged ViewModel::CalculatorViewModel ContentPage View::MainPage + MainPage() +BindingContext + CalculatorViewModel(CalculatorModel) - Model_CalculationPerformed(object, CalculatorEventArgs) :void - Calculate(String) :void - OnPropertyChanged(String) :void - OnErrorOccured(String) :void «property» + NumberFieldValue() :String + Calculations() :ObservableCollection<String> + CalculateCommand() :DelegateCommand «event» + PropertyChanged() :PropertyChangedEventHandler + ErrorOccured() :EventHandler<ErrorMessageEventArgs> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:18
19 Példa Megvalósítás (MainPage.xaml): <!-- felhelyezzük a vezérlőket a rácsra, és hozzákötjük őket a nézetmodellhez --> <Entry Text="{Binding NumberFieldValue}" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" FontSize="40" /> <Button Command="{Binding CalculateCommand}" CommandParameter="+" Text="+" FontSize="30" HeightRequest="60" WidthRequest="70" HorizontalOptions="Start" Grid.Row="1" Grid.Column="0" /> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:19
20 Alkalmazások mobil környezetben A mobil/táblagépes környezetben alkalmazásunknak számos speciális követelményt kell teljesíteni könnyű áttekinthetőség, infografikus megjelenítés folyamatos, gyors működés aszinkron tevékenységekkel alkalmazkodás (resposiveness): az alkalmazás különböző hardvereken, különböző méretű/felbontású képernyőkön, különböző tájolással (portré/tájkép), különböző üzemmódokban (teljes képernyő, oldalra zárt, ) futhat kézmozdulatok kezelése, és kihasználása speciális hardverek igénybevétele (GPS, gyorsulásmérő, ) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:20
21 Kézmozdulatok kezelése Célszerű az alkalmazás vezérlésében a felhasználó kézmozdulataira támaszkodni bármely vezérlőre állíthatunk kézmozdulat érzékelést (GestureRecognizer), így tetszőleges tevékenységet (Command) rendelhetünk bármely vezérlőhöz támogatott az érintés (TapGestureRecognizer), a csíptetés (PinchGestureRecognizer) és a húzás (PanGestureRecognizer), illetve tetszőleges egyedi mozdulat megvalósítása (IGestureRecognizer), pl.: <Label > <Label.GestureRecognizers> <!-- érzékelés --> <TapGestureRecognizer Command= /> <!-- érintés hatására fut a parancs --> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:21
22 Méret kezelés A mobil eszközök képernyőmérete jelentősen eltérhet, és az alkalmazásunknak alkalmazkodnia kell a teljes képernyős megjelenítéshez a vezérlők, szövegek méretezésénél használjunk relatív méreteket, pl.: <StackLayout HorizontalOptions="Fill" VerticalOptions="Fill" > <!-- az elrendező kitölti a képernyőt --> <Label FontSize="Medium"> <!-- a szövegméret közepes lesz --> lehetőségünk méretezni bármely vezérlőt a Scale tulajdonság segítségével ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:22
23 Méret kezelés a méretezést legcélszerűbb gyerekvezérlőkre alkalmazni (ContentView, Layout, ContentPage leszármazottakban) kezelhető a vezérlő átméretezése (OnSizeAllocated) kezelhető a tartalom átméretezése (Content.SizeChanged) pl.: private void Content_SizeChanged( ) { // ha változik a tartalom mérete, akkor // méretezzük Double height = Height / Content.Height; Double width = Width / this.content.width; } if (width > 0 && height > 0) Content.Scale = Math.Min(height, width); ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:23
24 Tájolás kezelés A mobil eszközök többféle tájolásban helyezkedhetnek el általában az portré/tájkép (álló/fekvő) tájolásokat különböztetjük meg, de ezeknek lehetnek speciális esetei a támogatott tájolásokat eszközönként adhatjuk meg (korlátozhatjuk) Android esetén a főtevékenység (MainActivity) egyik jellemzője a támogatott tájolás (ScreenOrientation) Windows esetén az alkalmazás leírója (application manifest) tartalmazza a tájolást az eszköz tájolását és az alkalmazás képernyőjének méretét egyszerre célszerű szabályozni a vezérlő méretváltoztatásának kezelésével (OnSizeAllocated) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:24
25 Tájolás kezelés pl.: protected override void OnSizeAllocated( Double width, Double height) // megkapjuk az aktuális // szélességet/magasságot { base.onsizeallocated(width, height); } // orientáció meghatározása if (width > height) // tájkép else // portré ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:25
26 Eszközkezelés Az alkalmazások felhasználhatóak táblagépes, illetve mobil környezetben is, és mindkét környezetben megfelelő megjelenítést kell biztosítanunk kódból lekérhetjük az eszköz típusát (Device.Idiom), és arra megfelelően reagálhatunk, pl.: if (Device.Idiom == TargetIdiom.Phone) { image.source = ImageSource.FromFile("small.jpg"); } else { image.source = ImageSource.FromFile("large.jpg"); } // táblagépen nagyobb képet használunk ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:26
27 Eszközkezelés Az alkalmazások felhasználhatóak táblagépes, illetve mobil környezetben is, és mindkét környezetben megfelelő megjelenítést kell biztosítanunk kódból lekérhetjük az eszköz típusát (Device.Idiom), és arra megfelelően reagálhatunk, pl.: if (Device.Idiom == TargetIdiom.Phone) { image.source = ImageSource.FromFile("small.jpg"); } else { image.source = ImageSource.FromFile("large.jpg"); } // táblagépen nagyobb képet használunk ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:27
28 Eszközkezelés nézetből az eszköznek megfelelő értékeket adhatjuk át (OnIdiom), ehhez meg kell adnunk az érték típusát (x:typearguments), illetve a két változatot (Phone, Tablet), pl.: <Label > <Label.FontSize> <! a betűméret eszközfüggő lesz --> <OnIdiom x:typearguments="x:double" Phone="10" Tablet="30"/> <!-- telefon esetén 10-es betűméretet használunk, táblagép esetén 30-ast --> </Label.FontSize> </Label> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:28
29 Triggerek Lehetőségünk van tevékenységeket deklaratív módon, triggerek segítségével megfogalmazni a nézetben triggerek megadhatók vezérlőkben és stílusokban triggerek segítségével reagálhatunk valamely vezérlő tulajdonságának megváltozására (property trigger), pl.: <Trigger TargetType="Entry" Property="IsFocused" Value="True"> <! ha fókuszba kerül a szövegdoboz --> <Setter Property="BackgroundColor" Value="Yellow" /> <!-- a háttere sárga lesz --> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:29
30 Triggerek a kötött adat megváltozására (data trigger), pl.: <DataTrigger TargetType="Button" Binding="{Binding Count}" Value="0"> <!-- ha a nézetmodell Count tulajdonsága 0-ra vált --> <Setter Property="Text" Value="Empty" /> <!-- a felirata Empty lesz --> eseményre (event trigger), amelynek hatására valamilyen akciót (trigger action) hajtunk végre, pl.: <EventTrigger Event="TextChanged"> <local:numbervalidateaction /> </EventTrigger> a triggerek kombinálhatóak (multi trigger) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:30
31 Triggerek a trigger akciók (TriggerAction<>) olyan osztályok, amelyben az eseményre adott reakciót (Invoke) írhatjuk le, pl.: public class NumberValidateAction : TriggerAction<Entry> // megadjuk az érintett vezérlő típusát { protected override void Invoke (Entry entry){ // megadjuk a tevékenységet double result; entry.textcolor = Double.TryParse(entry.Text, out result)? Color.Default : Color.Red; // ha nem szám, piros lesz a betűszín ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:31
32 Példa Feladat: Készítsünk egy egyszerű számológépet, amellyel a négy alapműveletet végezhetjük el, illetve láthatjuk korábbi műveleteinket is. alakítsuk át a nézetet, hogy könnyen használható legyen mobil környezetben, és alkalmazkodjon a platformhoz szövegbevitel helyett gondokat használunk a számokhoz, ezért ki kell egészítenünk a nézetmodellt a számok kezelésével (Calculate) megvalósítunk egy új laptípust (OrientationAwareContentPage), amely kezeli a tájolást (IsLandscape), így triggerek segítségével tudunk reagálni az elforgatásokra külön méreteket definiálunk mobilra és táblagépekre (OnIdiom) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:32
33 Példa Tervezés: App Application + App() - ViewModel_ErrorOccured(object, ErrorMessageEventArgs) :void Model::CalculatorModel -_model +BindingContext INotifyPropertyChanged ViewModel::CalculatorViewModel OrientationAwarePage View::MainPage + MainPage() ContentPage View::OrientationAwareContentPage - _islandscape :Boolean # OnSizeAllocated(Double, Double) :void «property» + IsLandscape() :Boolean ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:33
34 Példa Megvalósítás (MainPage.xaml): <view:orientationawarecontentpage > <Style x:key="basicbuttonstyle" TargetType="Button"> <Setter Property="FontSize"> <Setter.Value> <OnIdiom x:typearguments="x:double" Phone="15" Tablet="45" /> <!-- reagálunk az eszközre --> </Setter.Value> </Setter> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:34
35 Példa Megvalósítás (MainPage.xaml): <view:orientationawarepage > <StackLayout> <StackLayout.Triggers> <!-- reagálunk az elforgatásokra --> <DataTrigger TargetType="StackLayout" Binding="{Binding Source={x:Reference ContentPage}, Path=IsLandscape}" Value="True"> <Setter Property="Orientation" Value="Horizontal" /> </view:orientationawarepage> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:35
36 Időzítés Felületi időzítésre használhatjuk a platformfüggő időzítőt (Device.StartTimer) megadhatjuk az időintervallumot, és a végrehajtandó tevékenység lambda-kifejezését a tevékenység egy logikai függvény, amely amennyiben hamissal tér vissza, az időzítő leáll, pl.: elapsedtime = 0; Device.StartTimer(TimeSpan.FromSeconds(1), () => { entry.text = ++elapsedtime; // eltelt másodpercek kiírása return elapsedtime < 120; // 2 percig fut az időzítő }); ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:36
37 Időzítés Üzleti logikában történő időzítésre használható a párhuzamosított időzítő (System.Threading.Timer) példányosításkor megadhatjuk a tevékenységet, egy felügyelt állapotot, a kezdési időt és az intervallumot, pl.: elapsedtime = 0; timer = new Timer(state => { entry.text = ++elapsedtime; }, state, 0, 1000); // 1 másodpercenként fut le megsemmisítéssel (Dispose) leállíthatjuk az időzítőt az időzítőt nem kell szinkronizálni a felülettel Amennyiben eseményvezérelt időzítőre van szükségünk (pl. System.Timers.Timer), a funkcionalitást becsomagolhatjuk egy annak megfelelő típusba ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:37
38 Példa Feladat: Készítsünk egy vizsgatétel generáló alkalmazást, amely ügyel arra, hogy a vizsgázók közül ketten ne kapják ugyanazt a tételt. a megjelenítéshez két lapot (ContentPage) használunk, amelyek között lapozunk (TabbedPage) az első lapon csak a tétel sorszámát jelenítjük meg, és érintéssel tudjuk generálni a sorszámot (TapGestureRecognizer), a második lapon elhelyezzük a beállításokat a sorszám méretét automatikusan méretezzük, ehhez egy saját vezérlőt veszünk fel (AutoSizeContentView), amely méretezi a tartalmát megvalósítunk egy saját időzítőt (Timer), amely teljes egészében megfelel az üzleti logikában használt időzítőnek (az időzített eseményt már nem kell szinkronizálnunk a nézetmodellben) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:38
39 Példa Tervezés: View::AutoSizeContentView ContentView + AutoSizeContentView() - AutoSizeContentView_ChildAdded(object, ElementEventArgs) :void - Content_SizeChanged(object, EventArgs) :void # OnSizeAllocated(double, double) :void IDisposable Model::Timer TabbedPage View::MainPage + MainPage() +DataContext ViewModelBase ViewModel::ExamGeneratorViewModel -_model Model::ExamGeneratorModel -_timer - _timer :System.Threading.Timer - _interval :TimeSpan - _autoreset :Boolean - _enabled :Boolean + Elapsed :ElapsedEventHandler + Timer() + Timer(Double) - ~Timer() + Start() :void + Stop() :void + Close() :void + Dispose() :void - Timeout(Object) :void - Dispose(Boolean) :void «property» + AutoReset() :Boolean + Enabled() :Boolean + Interval() :Double ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:39
40 Példa Megvalósítás (MainPage.xaml): <TabbedPage > <view:autosizecontentview> <!-- automatikusan méreteződik a tartalom --> <Label Text="{Binding QuestionNumber}" > <Label.GestureRecognizers> <!-- érintés kezelése --> <TapGestureRecognizer Command="{Binding StartStopCommand}" /> <!-- érintés --> </Label.GestureRecognizers> </Label> </view:autosizecontentview > ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:40
41 Külső vezérlők Az egyedileg létrehozott vezérlők mellett számos programcsomag tartalmaz Xamarin Forms vezérlőt XAML-ben a külső forrásban definiált vezérlő esetén be kell töltenünk a szerelvényt (assembly) Amennyiben dinamikusan méretezhető rácsot szeretnénk megvalósítani, használhatjuk a DLToolkit.Forms.Controls csomagot, amely tartalmaz egy FlowListView vezérlőt szabályozható az egy sorban megjelenített vezérlők száma (FlowColumnCount) szabályozható a megjelenített vezérlő (FlowColumnTemplate) külön kell jelezni a vezérlő inicializálását (FlowListView.Init()) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:41
42 Külső vezérlők Pl.: <ContentPage xmlns:controls="clr-namespace: DLToolkit.Forms.Controls; assembly=dltoolkit.forms.controls.flowlistview"> <!-- külső szerelvény betöltése --> <controls:flowlistview > <!-- külső vezérlő felhasználása --> <controls:flowlistview.flowcolumntemplate> <DataTemplate> </DataTemplate> </controls:flowlistview.flowcolumntemplate> </controls:flowlistview> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:42
43 Példa Feladat: Készítsünk egy dinamikus méretezhető táblát, amely három szín között (piros, fehér, zöld) állítja a kattintott gombot, valamint a vele egy sorban és oszlopban lévőket. elhasználjuk a rendelkezésre álló a nézetmodellt (ColorGridViewModel, ColorFieldViewModel), a színváltást trigger segítségével vezéreljük használjuk a FlowListView vezérlőt a rács megjelenítéséhez, amelyet elhelyezünk az automatikusan méretező nézetben (AutoSizeContentView) annak érdekében, hogy a mezők szélessége megegyezzen a magassággal, létrehozunk egy egyedi, négyzet alakú gombot (SquareButton), ahol a magasságot a szélességgel tesszük egyenértékűvé (OnSizeAllocated) ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:43
44 Példa Tervezés: View::AutoSizeContentView ContentView + AutoSizeContentView() - AutoSizeContentView_ChildAdded(object, ElementEventArgs) :void - Content_SizeChanged(object, EventArgs) :void # OnSizeAllocated(double, double) :void View::SquareButton Button # OnSizeAllocated(double, double) :void * ContentPage View::MainPage + MainPage() ViewModelBase ViewModel::ColorGridViewModel * ViewModelBase ViewModel::ColorFieldViewModel ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:44
45 Példa Megvalósítás (MainPage.xaml): <view:autosizecontentview Grid.Row="3"> <!-- automatikusan méreteződő tartalom --> <controls:flowlistview FlowItemsSource="{Binding Fields}" FlowColumnCount="{Binding ColumnCount}" > <!-- külső vezérlő, amelyből rácsot készítünk --> <controls:flowlistview.flowcolumntemplate> <DataTemplate> <view:squarebutton /> <!-- a rácsot négyzetes gombokkal töltjük fel --> ELTE IK, Eseményvezérelt alkalmazások fejlesztése II 10:45
Eseményvezérelt alkalmazások fejlesztése II 10. előadás. Xamarin alapismeretek. Xamarin alapismeretek. Xamarin alapismeretek. Xamarin alapismeretek
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 10. előadás A Xamarin platform A Xamarin egy többplatformos szoftverfejlesztői környezet, amely lehetőséget ad
Eseményvezérelt alkalmazások fejlesztése II 10. előadás. Window Runtime alapismeretek. Windows Runtime alapismeretek A Windows Runtime
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 10. előadás Window Runtime alapismeretek 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Eseményvezérelt alkalmazások fejlesztése II 9. előadás. Window Runtime alapismeretek, Modern UI alapú alkalmazások
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 9. előadás Window Runtime alapismeretek, Modern UI alapú alkalmazások 2013.11.21. Giachetta Roberto groberto@inf.elte.hu
Eseményvezérelt alkalmazások fejlesztése II 10. előadás. Window Runtime alapismeretek, Modern UI alapú alkalmazások.
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 10. előadás Window Runtime alapismeretek, Modern UI alapú alkalmazások Giachetta Roberto A jegyzet az ELTE Informatikai
Eseményvezérelt alkalmazások fejlesztése II 8. előadás. Összetett WPF alkalmazások. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 8. előadás Összetett WPF alkalmazások Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Eseményvezérelt alkalmazások fejlesztése II 9. előadás. WPF erőforrások kezelése. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 9. előadás WPF erőforrások kezelése Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk egy Sudoku játékprogramot. A Sudoku egy olyan 9 9-es táblázat, amelyet úgy kell a 0-9 számjegyekkel
3. Beadandó feladat dokumentáció
3. Beadandó feladat dokumentáció Készítette: Hallgató Harald E-mail: haha@inf.elte.hu Feladat: Készítsünk egy Sudoku játékprogramot. A Sudoku egy olyan 9 9-es táblázat, amelyet úgy kell a 0-9 számjegyekkel
Eseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 5. előadás Windows Forms alkalmazások párhuzamosítása Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk egy Sudoku játékprogramot. A Sudoku egy olyan 9 9-es táblázat, amelyet úgy kell a 0-9 számjegyekkel
Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 12. előadás Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.
Eseményvezérelt alkalmazások fejlesztése II 7. előadás. WPF alkalmazások architektúrája. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 7. előadás WPF alkalmazások architektúrája Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Nézetek kezelése Sok esetben
Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 10. előadás Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Tesztelés
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Készült Giachetta Roberto jegyzete alapján
Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba
Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen
Programozási környezetek
KOVÁSZNAI GERGELY ÉS BIRÓ CSABA EKF TTK Információtechnológia Tanszék Programozási környezetek Alkalmazható természettudományok oktatása a tudásalapú társadalomban TÁMOP-4.1.2.A/1-11/1-2011-0038 WPF Bevezetés
Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.
Ugráló gomb oktatási segédlet Ugráló gomb
Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen
Programozási technológia
Programozási technológia Swing GUI készítése NetBeans IDE segítségével Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Bevezető Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi
Swing GUI készítése NetBeans IDE segítségével
Programozási Swing e NetBeans IDE segítségével Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 2 Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi feladatunk volt az
1. Beadandó feladat dokumentáció
1. Beadandó feladat dokumentáció Készítette: Hallgató Harald E-mail: haha@inf.elte.hu Feladat: Készítsünk egy Sudoku játékprogramot. A Sudoku egy olyan 9 9-es táblázat, amelyet úgy kell a 0-9 számjegyekkel
Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET) Webfejlesztés MVC architektúrában Fejlesztés ASP.
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 2. előadás Webfejlesztés MVC architektúrában (ASP.NET) 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Bánsághi Anna anna.bansaghi@mamikon.net. 2015 Bánsághi Anna 1 of 31
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 5. ELŐADÁS - ABLAKOK, ERŐFORRÁSOK 2015 Bánsághi Anna 1 of 31 TEMATIKA I. C# áttekintés II. WPF 2015 Bánsághi Anna 2 of 31 II. WPF 1.
Eseményvezérelt alkalmazások fejlesztése II 7. előadás. WPF alkalmazások architektúrája. WPF alkalmazások architektúrája
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 7. előadás A nézet rétegződése Grafikus alkalmazásoknál alapvető tervezési kérdés a felületi megjelenés, valamint
2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.
Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként
Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).
Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Mi hogyan használjuk? awt: eseménykezelés,
components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem
http:www.johanyak.hu Analóg óra Készítsünk egy analóg órát megjelenítő alkalmazást. A feladat egy lehetséges megoldása a következő: 1. Az alkalmazás vázának automatikus generálása Fájl menü, New, Project
Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver
ANDROID ALKALMAZÁSFEJLESZTÉS Android komponensek használata Activity Fragment Service Broadcast Recevier sicz- m e s z i a r. j a n o s @ n i k. u n i - o b u d a. h u Sicz-Mesziár János 2015. március
Eseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 5. előadás Windows Forms alkalmazások párhuzamosítása Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu
Eseményvezérelt és objektumorientált programozás
DIALOG BOXES, DATA BINDING, STYLES, TRIGGERS WPF 1 Készítsük el a hallgatók és az oktatók nyilvántartását megvalósító modult. Mindkettő hasonló módon működik, ezért az alábbi leírásban csak a hallgatói
Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor
Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig
Android Pie újdonságai
Android Pie újdonságai Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Android 9 újdonságok Fejlesztői érdekességek API változások Mit tartogat a jövő? Android 9 újdonságok Testreszabott rendszer Egyszerűbb,
Java Programozás 11. Ea: MVC modell
Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát
Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 7. előadás Autentikáció és autorizáció (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Autentikáció
Alap számológép alkalmazás
Első Androidos programom - Egyszerű műveleteket használó számológép elkészítése Android Developer Tools (ADT) segítségével Alap számológép alkalmazás Android programfejlesztés Tompos Szabolcs Tartalom
Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése Bevezetés Célkitűzés, tematika, követelmények A.NET Core keretrendszer Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu
Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.
Programozási Grafikus Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt: heavy weight" komponensek swing:
Android Wear programozás. Nyitrai István nyitrai.istvan@bmeautsoft.hu
Android Wear programozás Nyitrai István nyitrai.istvan@bmeautsoft.hu Amiről szó lesz A platformról dióhéjban Felületi újdonságok Fejlesztői környezet beállítása Értesítések Példa #1 Kommunikáció Példa
Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 11. előadás Szoftverek tesztelése 2014 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése Célkitűzés, tematika, követelmények A.NET Core keretrendszer Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Célkitűzés
libgdx alapok, első alkalmazás
A libgdx letöltésének, telepítési lépéseinek bemutatása, projekt létrehozása, első libgdx alkalmazás elkészítése képernyőképekkel, magyarázatokkal. libgdx alapok, első alkalmazás Android játékfejlesztés
WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens
WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens Hozzunk létre egy ASP.NET Empty Web Site projektet! A projekt neve legyen WCFAPP1. Ez
Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 12. fejezet Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2016. évi jegyzetpályázatának
Access adatbázis elérése OLE DB-n keresztül
Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes
BME MOGI Gépészeti informatika 7.
BME MOGI Gépészeti informatika 7. 1. feladat Írjon Windows Forms alkalmazást egy kör és egy pont kölcsönös helyzetének vizsgálatára! A feladat megoldásához hozza létre a következő osztályokat! Pont osztály:
Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben
Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk
BME MOGI Gépészeti informatika 6.
BME MOGI Gépészeti informatika 6. 1. feladat Készítsen Windows Forms alkalmazást véletlen adatokkal létrehozott körök kölcsönös helyzetének vizsgálatára! Hozza létre a következő struktúrákat, melynek elemei
Adabáziselérés ODBC-n keresztül utasításokkal C#-ban
Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Nézetek
MVC. Model View Controller
MVC Model View Controller Szoftver fejlesztés régen Console-based alkalmazások Pure HTML weboldalak Assembly, C Tipikusan kevés fejlesztő (Johm Carmack Wolfenstein, Doom, Quake..) Szűkös erőforrások optimális
ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor
ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés Készítette: Gregorics Tibor Előfeltétel: OAF (EAF2) Kötelező házi feladatok: 4 darab feladat max. 5-5 pontért Feltételek 2 hét késés: legfeljebb 3
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok
Eseményvezérelt alkalmazások fejlesztése II 11. előadás. Window Runtime specifikus alkalmazások megvalósítása. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 11. előadás Window Runtime specifikus alkalmazások megvalósítása Giachetta Roberto A jegyzet az ELTE Informatikai
Webes alkalmazások fejlesztése 9. előadás. Webszolgáltatások felhasználása (ASP.NET WebAPI)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 9. előadás Webszolgáltatások felhasználása (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
UI megismerése, különböző felbontások támogatása, használati jogok kérése
UI megismerése, különböző felbontások támogatása, használati jogok kérése Sicz-Mesziár János sicz.mj@gmail.com 2011. március 2. OE-NIK Layout-ok megismerése LinearLayout UI Elemek egymás után Orientáció
Programozási technológia
Programozási technológia Grafikus felhasználói felület Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt,,heavy weight"
Broadcast Service Widget
OE-NIK 2012. április 22. Sicz-Mesziár János sicz-mesziar.janos@ nik.uni-obuda.hu Broadcast Service Widget Broadcast Mi is ez? Aszinkron, üzenetszórásos értesítés Azok akik felregisztráltak rá értesülnek
DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák
A Portál rendszer felületének általános bemutatása Felhasználói útmutató Támogatott böngészők Internet Explorer 9+ Firefox (legújabb verzió) Chrome (legújabb verzió) Felületek felépítése Információs kártyák
Johanyák Zsolt Csaba: Grafikus felület programozása. http://www.johanyak.hu e-mail: johanyak.csaba@gamf.kefo.hu Copyright 2008 Johanyák Zsolt Csaba
Johanyák Zsolt Csaba: Grafikus felület programozása http://www.johanyak.hu e-mail: johanyak.csaba@gamf.kefo.hu Copyright 2008 Johanyák Zsolt Csaba 1. Gyümölcsárazó automata Készítsünk egy gyümölcsárazó
Vizuális, eseményvezérelt programozás I.
Vizuális, eseményvezérelt programozás I. Visual Studio ismétlés Grafikus felület tervezése Vezérlők alapvető tulajdonságai, metódusai, eseményei Hibakezelés V 1.0 1 Hallgatói tájékoztató A jelen bemutatóban
Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 2. előadás Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Fejlesztés
3. Beadandó feladat dokumentáció
3. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a közismert Tic-Tac-Toe játékra. Ebben a játékban a játékosok egy -as játékmezőn
Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv
Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv Tartalomjegyzék 1. Symbian rendszer...2 1.1 Funkciók és követelmények...2 1.2 Telepítés és használat...2 2. Windows Mobile rendszer...6 2.1
Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás
BME MOGI Gépészeti informatika 14.
BME MOGI Gépészeti informatika 14. 1. feladat Készítsen alkalmazást, mely a képernyő közepére egy véletlen színnel kitöltött kört rajzol! A színváltást nyomógomb segítségével oldja meg! A rajzolást a form
Entity Framework alapú adatbáziselérés 2
Entity Framework alapú adatbáziselérés 2 Dr. Johanyák Zsolt Csaba http://johanyak.hu A gyakorlat célja az, hogy a korábban létrehozott Telefonszám kezelő alkalmazást kiegészítsük egy WPF típusú felülettel.
Előszó... 13. 1. A Windows alkalmazásfejlesztés rövid története... 15. A Windows életútja... 15 A Windows 8 paradigmaváltása... 16
Előszó... 13 1. A Windows alkalmazásfejlesztés rövid története... 15 A Windows életútja... 15 A Windows 8 paradigmaváltása... 16 A Microsoft megteszi az első lépéseket a fogyasztók felé... 17 A Windows
Mobil Informatikai Rendszerek
Mobil Informatikai Rendszerek Android NDK Native Development Kit Sicz-Mesziár János sicz-mesziar.janos@nik.uni-obuda.hu Mezei József mezei.jozsef@nik.uni-obuda.hu 2018. április 22. NDK Native Development
Vizuális programozás gyakorlat
Vizuális programozás gyakorlat Készítsen egy Windows Presentation Foundation alkalmazást, ami a közismert, képeken alapuló memóriajáték egy egyszerű változatát valósítja meg. A program funkcionalitása
Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 7. előadás Autentikáció és autorizáció (ASP.NET) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Az ErdaGIS térinformatikai keretrendszer
Az ErdaGIS térinformatikai keretrendszer Két évtized tapasztalatát sűrítettük ErdaGIS térinformatikai keretrendszerünkbe, mely moduláris felépítésével széleskörű felhasználói réteget céloz, és felépítését
Programozás BMEKOKAA146. Dr. Bécsi Tamás 10. Előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 10. Előadás A Timer komponens Tulajdonságok: Típus Tulajdonság Magyarázat bool Enabled Engedélyezve int Interval Meghívás periódusa ms-ban Metódusok: Típus Metódus
Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba II 1. gyakorlat A grafikus könyvtár használata, alakzatok rajzolása 2014.02.10. Giachetta Roberto groberto@inf.elte.hu
2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();
BME MOGI Gépészeti informatika 17. A C# nyelv generikus típusait a System.Collections.Generics névtérben találhatjuk meg. Ez a névtér számos osztályt és interfészt tartalmaz, amelyek lehetővé teszik előre
Form1 Form Size 400;400 Text Mozgó kör timer1 Timer Enabled True Interval 100
BME MOGI Gépészeti informatika 16. 1. feladat Írjon alkalmazást, melyben egy 4 pixel sugarú, pirosra kifestett kört egy másik körön mozgat! A mozgást időzítő vezérelje! Megoldási mód: Windows Forms alkalmazás
Webes alkalmazások fejlesztése 9. előadás. Webszolgáltatások felhasználása (ASP.NET Core &.NET Framework)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 9. előadás Webszolgáltatások felhasználása (ASP.NET Core &.NET Framework) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu
A Canvas LMS új és régi felülete közti különbségek
A Canvas LMS új és régi felülete közti különbségek Ezen dokumentumban a Canvas LMS régi, illetve az új, modernebb felhasználói felületének eltéréseire térünk ki, segítséget adva azon felhasználóknak, akik
Komponens alapú szoftverfejlesztés 9. előadás. Grafikus felületű alkalmazások architektúrái. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Komponens alapú szoftverfejlesztés 9. előadás Grafikus felületű alkalmazások architektúrái Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Eseményvezérelt alkalmazások fejlesztése II 11. előadás. Platformspecifikus Xamarin alkalmazások. Platformspecifikus Xamarin alkalmazások
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 11. előadás Platformspecifikus Xamarin alkalmazások Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Java programozási nyelv 6. rész Java a gyakorlatban
Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék
Eseményvezérelt alkalmazások fejlesztése II 4. előadás. Windows Forms alkalmazások architektúrája és tesztelése
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 4. előadás Windows Forms alkalmazások architektúrája és tesztelése 2015 Giachetta Roberto groberto@inf.elte.hu
Operációs rendszerek. Tanmenet
Tanmenet TANMENET- Operációs rendszerek Témakörök Javasolt óraszám 1. Operációs rendszerek alapjai 2. Windows 2000 ismeretek- Munka a képernyőn 3. Windows 2000 ismeretek- A Start menü elemei 4. Windows
// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió
BME MOGI Gépészeti informatika 3. 1. feladat Végezze el a következő feladatokat! Kérjen be számokat 0 végjelig, és határozza meg az átlagukat! A feladat megoldásához írja meg a következő metódusokat! a.
Webes alkalmazások fejlesztése 10. előadás. Szolgáltatás alapú rendszerek megvalósítása (ASP.NET WebAPI) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 10. előadás Szolgáltatás alapú rendszerek megvalósítása (ASP.NET WebAPI) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu
Vizuális programozás gyakorlat
Vizuális programozás gyakorlat Képnézegető alkalmazás WPF alapú felülettel Készítsen egy WPF képnézegető alkalmazást, ami a mellékelt ábrának megfelelően a bal oldali oszlopban (Grid) egy könyvtárban található
Mobil Informatikai Rendszerek
Mobil Informatikai Rendszerek Android NDK Native Development Kit 2016. november 27. Sicz-Mesziár János sicz- m e s z i a r. j a n o s @ nik.uni - obuda.hu NDK Native Development Kit Egy set of tools, amely
Grafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. MATLAB alapismeretek IX. A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása Alkalmazott Informatikai Intézeti
Vizuális és eseményvezérelt programozás , II. félév BMF NIK
Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK Eseménykezelés A képviselő( delegate ) Képviselők C# nyelvi megvalósítása Metódushívás képviselőn keresztül Az esemény ( event ) Esemény
Újdonságok a Google műhelyéből. Péter Ekler
Újdonságok a Google műhelyéből Péter Ekler peter.ekler@aut.bme.hu Android O újdonságok? Alkalmazás viselkedés változások 1/2 Korlátozott háttérben futás > Alacsonyabb prioritás a háttér szolgáltatásoknak
Választó lekérdezés létrehozása
Választó lekérdezés létrehozása A választó lekérdezés egy vagy több rekordforrásból származó adatokat jelenít meg. A választó lekérdezések a táblák, illetve az adatbázis tartalmát nem változtatják meg,
OOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
Operációs rendszerek. Az X Window rendszer
Operációs rendszerek X Windows rendszer Az X Window rendszer Grafikus felhasználói felületet biztosító alkalmazás és a kapcsolódó protokoll 1983-84: a Massachusetts Institute of Technology-n (MIT, USA).
ANDROID ALKALMAZÁSFEJLESZTÉS
ANDROID ALKALMAZÁSFEJLESZTÉS Android komponensek használata Activity Fragment Service Broadcast Recevier Runtime permissions sicz- m e s z i a r. j a n o s @ n i k. u n i - o b u d a. h u Sicz-Mesziár
BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +
BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra 1. feladat Készítsen alkalmazást az = + függvény ábrázolására! Az értelmezési tartomány a [-6;5] intervallum, a lépésköz 0,1 legyen!
APB mini PLC és SH-300 univerzális kijelző Általános használati útmutató
APB mini PLC és SH-300 univerzális kijelző Általános használati útmutató Fizikai összeköttetési lehetőségek: RS232 APB-232 RS485 A APB-EXPMC B SH-300 program beállítások: Kiválasztjuk a megfelelő PLC-t.
Szoftvertechnolo gia gyakorlat
Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot