Tanfolyamok a Pollack Mihály Műszaki és Informatikai Kar
Mérnök, -és Építész Továbbképző Központ szervezésében

Kinek ajánljuk?

Azon programozóknak, akiknek van már C/C++, Pascal/Delphi, C#, PhP programozási gyakorlatuk, de szeretnének továbblépni Android vagy GWT irányban.

A tervezett óraszám 2X8 óra, ami nem alkalmas a teljes Java programnyelv megismertetésére, de gyakorlott programozók számára a Java alapokat megismerteti.

Két szinten lehet bekapcsolódni, az alap szint azok számára ajánlott, akik az objektum-orientált programozással akarnak megismerkedni.

A második szinten becsatlakozóknak ez már nem okoz gondot, de a Java perifériás lehetőségei (erőforrások, XML, tervezési minták, lokalizáció, stb.) még fehér foltot jelentenek.

Hogy tudom eldönteni melyik szinten kell bekapcsolódnom?

A döntés megkönnyítéséhez mellékelünk két minta kódot. Ha bármely részlet homályos akkor az kijelöli a szükséges csatlakozási szintet.

Alap szintű felmérő kód

 package com.argus.gwtp.client.presenter;

import com.argus.gwtp.client.CurrentUserChangedEvent;
import com.argus.gwtp.client.CurrentUserChangedEvent.CurrentUserChangedHandler;
import com.argus.gwtp.shared.CurrentUser;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.web.bindery.event.shared.EventBus;
import com.gwtplatform.mvp.client.PresenterWidget;
import com.gwtplatform.mvp.client.View;
import com.gwtplatform.mvp.client.annotations.ProxyEvent;

/**
 * Abstract LoginPresenter class. There are different login methods:
 *   - none, for demo mode
 *   - by-pin, for touchscreen using, only pin code exists
 *   - by-user-name-password, normal usernam/password login
 * @author zamek
 *
 * @param <V> a View which extends MyView.
 */

public abstract class AbstractLoginPresenter<V extends AbstractLoginPresenter.MyView> extends PresenterWidget<V>
   implements CurrentUserChangedHandler {

	
   public interface MyView extends View {
		
   }
	
   @Inject MainPagePresenter mainPagePresenter;
	
   /**
    * Constructor of AbstractLoginPresenter. There is no need default constructor, because this is Gin generated class.
    * @param eventBus Eventbus for send/capture events.
    * @param view any display for login frontend
    */
   public AbstractLoginPresenter(final EventBus eventBus, final V view) {
      super(eventBus, view);
      eventBus.addHandler(CurrentUserChangedEvent.getType(), new CurrentUserChangedEvent.CurrentUserChangedHandler() {
			
         @Override
         public void onCurrentUserChanged(CurrentUserChangedEvent event) {
            userChanged(event.currentUser);
         }
      });
   }	

   /**
    * Show/Hide view.
    * @param enabled true=visible
    */
   public void setVisible(boolean enabled) {
      this.getView().asWidget().setVisible(enabled);
   }

   @ProxyEvent
   @Override
   /**
   * Captures the CurrentUserChange event, to show/hide login/logout display content.
   * @param event contains the new user data.
   */
   public void onCurrentUserChanged(CurrentUserChangedEvent event) {
      this.setVisible(!event.currentUser.isGuest());
   }

   public MainPagePresenter getMainPagePresenter() {
      return this.mainPagePresenter;
   }
	
   /**
    * Register an event handler of the Login button of View
    * @param handler handling login event
    */
   public abstract void addLoginClickHandler(ClickHandler handler);

   /**
    * Getting the userName from display, to send authenticating
    * @return the name of user to authenticating
    */
   public abstract String getUserName();
	
   /**
    * Getting the password from display, to send authenticating
    * @return the password of user to authenticating
    */
   public abstract String getPassword();
	
   /**
    * User changed method, for view
    * @param user the changed user data
    */
   protected abstract void userChanged(CurrentUser user);
	
}

Alapok

  1. Ismerkedés az Eclipse környezettel, egy-két ismétlő jellegű, de Java szintaktikájú program.
  2. Osztály, objektum, példányosítás.
  3. Öröklődés - osztályok öröklődése.
  4. Interface, absztrakt osztály.
  5. Generikus programozás
  6. Annotációk
  7. Kivételkezelés

Special szintű felmérő kód

 <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
   xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:sb="urn:import:com.argus.gwtp.client.util.slider">

   <ui:with type="com.argus.gwtp.client.util.slider.SliderResource"
      field="res" />

   <ui:style>
		
   </ui:style>
   <g:HorizontalPanel>
      <g:PushButton ui:field="btnLeft">
         <g:upFace image="{res.left}" />
      </g:PushButton>
      <sb:HorizontalSliderBar minValue="4" maxValue="12"
         ui:field="slider" currentValue="6" stepSize="0.5" numTicks="10"
         numLabels="10" height="200px" />
      <g:PushButton ui:field="btnRight">
         <g:upFace image="{res.right}" />
      </g:PushButton>
   </g:HorizontalPanel>
</ui:UiBinder>

package com.argus.gwtp.client.util.slider;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.PushButton;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.widgetideas.client.SliderBar;

public class HorizontalSlider extends AbstractSlider {

   private static HorizontalSliderUiBinder uiBinder = GWT
         .create(HorizontalSliderUiBinder.class);

   interface HorizontalSliderUiBinder extends
         UiBinder<Widget, HorizontalSlider> {
   }

   @UiField PushButton btnLeft;
   @UiField PushButton btnRight;
   @UiField HorizontalSliderBar slider;
	
   public HorizontalSlider() {
      initWidget(uiBinder.createAndBindUi(this));
      this.btnLeft.addClickHandler(new ClickHandler() {
			
         @Override
         public void onClick(ClickEvent event) {
            leftClicked();
         }
      });
      this.btnRight.addClickHandler(new ClickHandler() {
			
         @Override
         public void onClick(ClickEvent event) {
            rightClicked();
         }
      });
   }

   @Override
   protected SliderBar getSliderBar() {
      return this.slider;
   }
	
   protected void leftClicked() {
      this.slider.shiftLeft(1);
   }
	
   protected void rightClicked() {
      this.slider.shiftRight(1);
   }

}

Java speciál

  1. Szerializáció
    (Objektumok mentése, betöltése, továbbítása)
  2. Kompozíció
    (Összetett adatstruktrák felépítése, kompozícióval és öröklődéssel)
  3. Design patterns
    (Creationals,behaviourals,structurals,MVC,MVP)
  4. XML alapok
    (Az xml leírók használata, hibakeresés)
  5. Java resource fogalma és kezelése
    (Lokalizáció, nem Java objektumok kezelése)
  6. Java deployment
    (Manifest, csomagkészítés, Ant, Maven)
  7. Java testing, documentation
    (Junit,JavaDoc)

Az Android egy Linux kernel fölött futó, mobil operációs rendszer. Fejlesztését az Android, Inc. kezdte meg, amit később a Google felvásárolt, majd az Open Handset Alliance nevű szövetség vette át a fejlesztését. A fejlesztők Java nyelven írhatnak alá menedzselt kódot, az eszközt a Google által fejlesztett Java programkönyvtárokon keresztül vezérelve.

Az Android platform abból a célból született, hogy egységes nyílt forrású operációs rendszere legyen a mobil eszközöknek (és itt elsősorban az okostelefon kategóriát kell érteni, mintsem egyszerű mobiltelefonokat). Az elképzelés alapja egy Linux alapú operációs rendszer volt, amelyet úgy alakítanak át, hogy képes legyen problémák nélkül kezelni a mobil eszközök integrált hardvereit (érintőképernyő, WiFi, HSDPA, Bluetooth, stb.). Az első lépéseknél nem volt szó Java nyelvről, azonban a Google 2005 júliusában megvásárolta az Android nevű céget, és új irányt adott a fejlesztésnek: a Linux kernel fölé egy virtuális gép került, amely a felhasználói felület kezeléséért és az alkalmazások futtatásáért felelős.

Napjainkra az Android platform iránt a mobiltelefon és a Tablet gyártók izgalmát leszámítva nagy érdeklődés mutatkozik a gépjárművek fedélzeti számítógépét és navigációját szállító cégek, illetve az ipari automatizálás irányából is, hiszen minden olyan helyen kényelmes az Android, ahol alapvetően kicsi a kijelző, limitáltak az erőforrások és az adatbevitel nem egérrel és/vagy billentyűzettel történik.

Ajánlott a Java alapozó tanfolyam anyagának ismerete.

Android tematika

  1. Android felépítése
    (Koncepció, felépítés, modulok)
  2. Feljlesztő környezet kialakítása
    (Eclipse, Android SDK)
  3. Hello World
  4. Activity
    (Indítás,felfüggesztés,folytatás,megállítás,újraindítás)
  5. Eszközök kezelése
    (Nyelvek,képernyőméretek,verziók)
  6. Kezelői felület
    Widgetek,Fragmentek,Flexibilis kezelői felület,kommunikáció a fragment-ek között
  7. Adattárolás
    (kulcs-érték párak tárolása, file-ok,SQL)
  8. Interakció az applikációk között
    (User adatok cseréje,adatok kérése más applikációktól,saját applikációk elérhetővé tétele)
  9. Tartalommegosztás
    (Tartalmak megosztása más applikációkkal,tartalmak használata más applikációkból )
  10. Audio alrendszer
  11. Kamera alrendszer
    (fotók,videók,kameravezérlés)
  12. Bitmap-ok kezelése
    (Nagyméretű képek gazdaságos kezelése,képfeldolgozás,cache-ing,megjelenítés)
  13. Személyes alkalmazások
    (User specifikus alkalmazások,autentikáció,testreszabás)
  14. Lokalizáció
    (Location manager,az aktuális hely)
  15. Közzététel
    (Az applikáció felkészítése a közzétételre,Google piactér,tesztelés,különböző verziók kezelése, eltérő képernyőméretek kezelése,)

A Google Web Toolkit a Google által 2006. május 16-án megjelentetett AJAX fejlesztői eszköztár (toolkit), amit felhasználtak a Google Base és a Google Checkout bizonyos részeinek, illetve a Google Mashup Editor egészének fejlesztésében is.

A fő újdonság a Java-JavaScript fordítóban van: a fejlesztő elvégezheti a kódolást és a felhasználói felület hibakeresését Java nyelvet használva, majd legenerálja a végleges HTML/JavaScript kódot és használhatja.

Az elkészült webes AJAX-os alkalmazás az összes modern böngészőt támogatja. Ez azt jelenti, hogy a kód minden olyan platformon változtatás nélkül fut, amelyen GWT-t támogató böngésző fut. Ez a gyakorlatban minden fontosabb platformot jelent egészen a hagyományos PC-től -Windows,Linux,Mac- az Android, IoS platformokig.

A JavaScript programkönyvtár, ami letöltődik a működéshez, kb. 100 Kbyte méretű. Az eredeti UI widgetek támogatják a CSS-t, és új widgetekkel, valamint egyedi JavaScript függvényekkel is lehet bővíteni őket. A gyári widgetek közül van, ami támogatja a drag and drop-ot.

Igen nagy előnye a rendszernek, hogy a megjelenítés erőforrás igénye a kliens eszközön jelentkezik, ezáltal nincs szükség nagymértékű szerver oldali skálázhatóságra.

Ajánlott a Java alapozó tanfolyam anyagának ismerete.

Néhány GWT demót az alábbiakban lehet megtekinteni.

Google Widget Toolkit tematika

  1. GWT felépítése
    (Koncepció, felépítés, modulok)
  2. Feljlesztő környezet kialakítása
    (Eclipse, GWT SDK)
  3. Hello World
    (alkotóelemek, fordítás, futtatás, hibakeresés)
  4. Widget-ek és event-ek
    (HTML elemek megfelelői, speciális GWT widget-ek, események kiváltása, elkapása)
  5. Layout
    (HorizontalPanel, VerticalPanel,FlowPanel,Grid,FlexPanel,DockLayout,TabLayout,SplitLayout,DeckLayout, DialogBox,PopupPanel,Tabbed panel,Stacked panel)
  6. UI binder
    (GWT designer, a design XML megfelelője, View, Resource elemek használata, Stílus elemek használata)
  7. Kliens-szerver kommunikáció
    (RPC,JSON,Szerializáció,kivételkezelés)
  8. Internacionalizáció
    (Tervezés,különböző nyelvek kezelése)
  9. Junit
  10. Security
    (sérülékenységek, védelmek, kódolási stílus)
  11. Alkalmazások tervezése
    (Az MVP modell megvalósulása)
  12. RequestFactory
    (Entitások,Entitás proxyk,Value proxyk,típusok,szerver oldali megvalósítás)
  13. Logging
    (Lokális, remote)
  14. Deployment
    (Jetty)

Tematika

  1. Képernyő felépítése, koordináta-rendszerek. Koordináta megadási módok. Szerkesztést támogató szolgáltatások ismertetése (háló, ortó-mód, tárgyraszter, stb.).
  2. Alapvető rajzparancsok használata (vonal, vonallánc, sokszög, kör, ív, téglalap, középpont, sraffozás, stb.). Mintafeladatok megoldása.
  3. Szerkesztési parancsok használata I. (mozgatás, másolás, beillesztés, nyújtás, tükrözés, léptékezés, metszés, lekerekítés, felosztás, párhuzamos, stb.). Mintafeladatok megoldása.
  4. Szerkesztési parancsok használata II. Mintafeladatok megoldása.
  5. Rajz részeinek logikai elkülönítése fóliák használatával, nyomtatási vonalvastagságok megadása. Mintafeladatok megoldása.
  6. Méretezés, feliratozás. Mintafeladatok megoldása.
  7. Blokkok létrehozása, mentése, beillesztése. Mintafeladatok megoldása.
  8. Blokkok használata. Összetett mintafeladat megoldása I.
  9. Összetett mintafeladat megoldása II.
  10. Rajzok importálása, exportálása, más programok kompatibilitása, mentési formátumok (DWG, DXF kiterjesztés). Nyomtatási beállítások.
  11. Nyomtatási beállítások. 3 dimenziós alapok.
  12. Vizsgafeladatok megoldása.

A tanfolyamok elegendő jelentkező esetén indulnak, minimális létszám 20 fő. A tanfolyamok szombat délelőttőnként lesznek reggel 8 órai kezdéssel, összesen 40 óra időtartamban.

Az Android és Gwt tanfolyamok közül az indul előbb, amelyre többen jelentkeznek. Ezen tanfolyamok előtt 2 alkalommal 8 órás Java előkészítőt tartunk.

A Pollack Műszaki kar hallgatói 10% kedvezményt kapnak az árból.

Tanfolyam ár  
Java alapozó Ingyenes az Android/Gwt hallgatóinak  
Android 72000Ft. Online regisztráció
GWT 72000Ft. Online regisztráció
AutoCad 42000Ft. Online regisztráció
     

Fizetési tudnivalók

A befizetést teljesítheti átutalással, vagy kérhet hozzá csekket.

Átutalás esetén: akinek elég a számla az átutalás teljesítése után, az a következő adatokat rögzítse az átutalási (befizetési) bizonylaton:

  • Jogosult neve és székhelye: PTE Műszaki Kar Pécs Boszorkány u.2.
  • Jogosult számlaszáma: 10024003-00282716-00000000
  • Közlemény: Név - Mérnöktovábbképzés (név)

Átutalás esetén: aki előre kér számlát, kérjük küldje el emailben az alábbi adatokat Feilné Győry Zsuzsanna részére a köv. címre: Feilné Győry Zsuzsa, tel:+3672 503-650/23899 email

  • Résztvevő neve:
  • Költségviselő neve:
  • Számlázási cím:
  • Számla összege:

Csekket igényelhet Feilné Győry Zsuzsanna ügyvivő szakértőnek írt email v. telefon útján: email (06 72 503 650 – 23899)

Megjegyzés:

Az igazolásokat a résztvevőknek, ill. a távoktatást teljesítőknek csak abban az esetben tudjuk 10 munkanapon belül kiállítani, aki legkésőbb a képzés idejét követő 5 munkanapon belül teljesíti a befizetést, és ezt nálunk igazolja a tanfolyamon, személyesen, vagy a másolat e-mailen/faxon történő elküldésével. A többiek is megkapják, de ez időben elhúzódhat.

Egyéb tájékoztatás:

Dr. Szabó Éva egyetemi docens

Pécsi Tudományegyetem Pollack Mérnöktovábbképző Központ

Java, Android vagy GWT szakmai ügyekkel kapcsolatban: Zidarics Zoltán, tel:+3672 503-650/23851 email

AutoCad szakmai ügyekkel kapcsolatban: Szabó Imre tel:+3672 503-650/23893 email