DART on Googlen avoimen lähdekoodin ohjelmointikieli, joka toimii verkkosivuilla ja servereissä, ja jolla voi JavaScriptiä paremmin hoitaa suurten verkkosovellusten koodaamisen. DART kielen kehitys aloitettiin 9/2011 ja 1.0-versio kielestä julkistettiin loppuvuodesta -2013. Nyt jo on olemassa lähes valmiit työkalut Chrome selainta varten. Blogger-blogien pitäjiä varten saamme ehkä kiintoisia Gadgetteja sivupalkkeihin ja muuta toiminnallisuutta verkkosivuille.
TÄMÄ blogi sisältää pääosin omia pohdintojani ja muistiinpanoja, eikä se varmaankaan tuo kovinkaan paljon uutta DART-kielen opiskeluun. Materiaali on pääosin KOPIOITU :( Dartlang-sivustoilta, josta kannattaa KÄYDÄ TARKISTAMASSA kielen viimeiset syntaksit.

torstai 27. syyskuuta 2012

Getters and setters IN DART


Getter and setter methods provide read and write access to internal object state. When calling a getter or setter, omit the trailing parentheses. Define getters and setters using the getand set keywords.
class Rectangle {
  num left, top, width, height;

  Rectangle(this.left, this.top, this.width, this.height);

  num get right()           => left + width;
      set right(num value)  => left = value - width;
  num get bottom()          => top + height;
      set bottom(num value) => top = value - height;
}
Use explicit getters and setters just like you would use the generated getters and setters from instance variables.
var rect = new Rectangle(3, 4, 20, 15);
assert(rect.left == 3);
rect.right = 12;
assert(rect.left == -8);
With getters and setters, you can start with instance variables, later wrapping them with methods, all without changing client code

Methods in DART


Methods are functions that provide behavior for an object.
Instance methods on objects can access instance variables and this. The distanceTo() method in the following sample is an example of an instance method.
#import('dart:math');

class Point {
  num x, y;
  Point(this.x, this.y);

  num distanceTo(Point other) {
    return sqrt(((x-other.x)*(x-other.x)) + ((y-other.y)*(y-other.y)));
  }
}
Here’s how you invoke the distanceTo() method on an instance of Point:
var point = new Point(2, 2); num distance = point.distanceTo(new Point(4,4)); assert(distance < 2.9 && distance > 2.8);





Simple DART DEMO, Yksinkertainen DART esimerkki ohjelma

// Simple DART demo to show use of Control Flow-structure and varables
 // that give it some control control. Done with Editor 12784 27.9.2012
 // This is gonna be changed during coming days... Not happy with it..
 // Also here is simple class and its instance in main structure.
 // When buildin first DART programs it is better to begin with these small ones...
// Output of this is seen in editor Output windows


#import('dart:html');

var jobs   = ['+1-Coffee','+2-Play Computer','3-Read Posts','4-Window watching','5-Hmmm'];
num jCount = jobs.length;
num jNow   = 0;


class Listjobs  {
//   not so elegant...

  num doJobs()   {
  num     _i      = 0;
  for (_i = 0; _i < jCount; _i++){
    print('Job To do now:   ');
    print(jobs[jNow]);
    print('OK.');
    jNow = jNow + 1;
  }
  return(jNow);
  }
}


void main() {

print('listing jobs...  $jCount');

var myListJobs = new Listjobs();
myListJobs;
myListJobs.doJobs();

  print(' Lets DART AGAIN!!  ');
}


In try dartlang  http://try-dart-lang.appspot.com/   this seems to collect 5 errors,
but in my editor it runs without errors...

tiistai 25. syyskuuta 2012

Yksinkertainen TODO ohjelma DART-kielellä

Building a simple dartlang TODO app +Victor Savkin put together a cool screencast for building a TODO app with #dartlang and +JetBrains WebStorm IDE. Victor used his SimpleMVP framework: http://github.com/vsavkin/SimpleMVP

Aiheeseen liittyvä video on linkissä:  http://vimeo.com/49728673

Siinä esitetään  havainnollisesti ohjelman teko.