Cursus en tutorials online

De afgelopen week heb ik een een paar dagen cursus Android Development gevolgd (kostte me wat vrije dagen, maar was de moeite meer dan waard!). Tijdens de cursus werd mijn vermoeden bevestigd; Eigenlijk zijn het niet de specifieke Android-dingen die ik niet begrijp. Ik heb de JAVA-Basics gewoon niet onder de knie. This, Context, inner- en outer-classes en static operators. Al die termen zeggen mij eigenlijk (nog) helemaal niets. Zie ook deze blogpost. Ik heb de Apps die tot nu toe in de market staan, gebouwd door gewoon maar code kopiëren-en-plakken. Elke keer als ik een fout tegenkwam, heb ik Google geraadpleegd en met veel pleisters en extra code de boel maar weer opgelost. Dat heeft als resultaat dat mijn code niet overeenkomt met welke conventie dan ook (behalve misschien mijn eigen, haha).

Tijdens de cursus leerden we onder andere hoe je een XML pagina kunt ‘parsen’ en om kan zetten in FeedItems voor in een Listview. De Listview kun je dan weer tonen in een App. Interessante technologie! Ik dacht meteen aan mijn – vaak voorkomende – ergernis: Als Mensa-lid heb ik toegang tot de ledenlijst, waar ik soms een telefoonnummer of contactgegevens in wil opzoeken. Op dit moment hebben we daar alleen een web-pagina voor. Op een smartphone is het dan ook een heel gedoe om de persoon op te zoeken, het telefoonnummer te kopiëren en te bellen. Het leek me handig om – voor eigen gebruik – hiervoor een App te maken. Problemen stapelden zich op ; Cookies (opgelost), SSL Certificaten (opgelost), te kleine buffers (niet opgelost), etc. etc. Een heel weekend Googelen, spaghetti-code schrijven en uiteindelijk weinig resultaat. Ik kan met mijn app inmiddels inloggen op de leden-pagina (SSL, Cookie en authorisatie). Daarna doet mijn app niet veel meer. Ergernis, want als ik de JAVA basics zou kennen, zou ik misschien makkelijk verder kunnen coderen. Een extra ergernis is, dat deze App (die misschien in een paar uurtjes te schrijven zou moeten zijn) niet direct bijdraagt aan mijn doel.

Dus. Nu maar een paar JAVA tutorials doen. Online. Even toch die basis proberen op te pakken. Ik heb de volgende uitgekozen om mee te beginnen : Online JAVA Tutorial. Na een pagina of 10 te hebben gelezen, doorzag ik de eerste concepten van Object Oriented Programming. Hoe meer ik lees, hoe groter het kleine wonder van de door mij reeds geschreven Apps lijkt.

Ik besteed de komende dagen en weekends aan het goed doorgronden van (een stuk van) de basis. En hopen dat het helpt. De kriebel onderdrukken om mijn huidige Apps opnieuw te schrijven (refactoring). Dat is niet nodig, want ze doen wat ze moeten doen. Ondertussen houdt een ham-vraag mij bezig; Wat wordt de volgende App? Het VirtuaFly SoundBoard was leuk, maar ik wil eigenlijk toch iets maken dat connectie zoekt met een website ofzo. Misschien dan toch maar een App waarmee je de Thuistest kunt maken? 😉

You can leave a response, or trackback from your own site.

4 Responses to “Cursus en tutorials online”

  1. Peter Rooij schreef:

    Ik heb nog problemen met SSL en inloggen kan je daar ms eens een artikel + code over schrijven !!

    • admin schreef:

      Ja, dat is goed. Het was inderdaad een klus om goed te begrijpen. Het komt erop neer dat ik uiteindelijk een eigen class heb geschreven (extends httpClient).
      public class HTTPSClient extends DefaultHttpClient
      {

      public HTTPSClient()
      {
      }

      @Override
      protected ClientConnectionManager createClientConnectionManager()
      {
      SchemeRegistry registry = new SchemeRegistry();

      HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER;
      final SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory();
      socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier);
      //socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

      registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
      // registry.register(new Scheme("https", socketFactory, 80));
      registry.register(new Scheme("https", socketFactory, 443));
      HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);

      HttpParams params = new BasicHttpParams();
      HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
      HttpProtocolParams.setContentCharset(params, "UTF-8");

      return new SingleClientConnManager(params, registry);
      }
      }

      Let wel; ik snap dus (nog) niet waarom dit werkt, maar het werkt. Ik heb ook oplossingen gezien waarin je met het accepteren van ANY certificate. Lijkt me niet de beste oplossing.. Ik heb ook nog geëxperimenteerd met het meeleveren van het certificaat. (FF > links naast de adresbar klikken, dan certificaat bekijken > opslaan als jks (java keystore), ombouwen naar BoucyCastle (BKS file) en meeleveren in de assets folder. Behoorlijk omslachtig, maar wel een leuke vingeroefening.. Bovenstaande code zou je, icm StackOverflow, een eind op weg kunnen helpen.

  2. Michiel schreef:

    Op the new boston kan je ook veel leuke tutorials vinden (http://thenewboston.org/tutorials.php). Het mooiste is dat dit filmpjes zijn, misschien zijn dan sommige dingen makkelijker te begrijpen. Mocht je vragen hebben, ik kan je vast wel helpen met java ;).

    • admin schreef:

      kikke! Dank voor de link ;).. Op welke manier kun je me helpen met JAVA? Ik zou graag een stap-voor-stap tutorial hebben voor het publiceren van code met eGit en GitHUB, want dat lukt bij mij nog steeds niet goed. (push code gaat niet). En dan denk ik dat de code iig beschikbaar is voor iedereen (daar is GitHUB toch voor?). Misschien krijg ik dan waardevolle feedback om verder te leren.

      Grt., K.

Leave a Reply