Kusan a cikin Linux mun rasa kusan wasu aikace-aikace, ko abokan cinikin wasu ayyuka waɗanda suka fito da wuri don wasu dandamali, saboda a cikin wannan darasin zamu ga yadda ake ƙirƙirar abokin ciniki (zai zama hangen nesa nesa sama), ta hanyar amfani da REST API tare da ƙima (da gtk 3).
API
Ba zan bayyana abin da API yake ba, ko menene REST API (za ku iya samun bayanai da yawa a cikin google), kawai zan ce kusan za mu yi wasu buƙatun (GET ko POST) kuma zai dawo da amsa a cikin tsarin JSON.
Don koyarwar na yanke shawarar amfani da api wanda yake samar mana Marvel (duba takaddun api), wanda ke ba mu jerin bayanai game da abubuwan ban dariya, haruffa ...
Don samun dama gare shi muna buƙatar maɓalli, wanda zamu iya samu ta hanyar rijista, da zarar mun samu muna da iyakar buƙatun 3000.
Bari mu ga misali na API, don kiran wannan api dole ne muyi amfani da maɓallanmu (muna da na jama'a da na masu zaman kansu):
Don ganin wannan sauki misali zamu iya amfani dashi www.md5.net inda muka sanya maɓallin kewayawa "+" maɓallin kewayawa "+" kuma wannan yana haifar da zanta, zamu iya kira kamar yadda ya sanya a hoto. Zamu sami amsa (a wannan yanayin ganin haruffa):
Akwai shirye-shirye da kari don masu bincike waɗanda zasu sauƙaƙe ra'ayin json:
Zamu iya ganin cewa ya bamu suna, kwatancen, ɗan hoto (hoton halin) ...
yi mamakin ci gaban yanar gizo
Kula da JSON tare da vala (Parseando).
Kuma ba zan bayyana yadda tsarin yake ba json, zaka iya samun bayanai ta yanar gizo. Zamu iya samun misali mai sauƙi wanda aka yi a cikin Vala a nan.
Da farko dai mun girka dakin karatu na json-glib idan har bamu dashi:
sudo apt-samun shigar libjson-glib-1.0-0 libjson-glib-1.0-0-dev
Hakanan zamu girka libsoup:
sudo apt-samun shigar libsoup-2.4 libsoup2.4-dev
Da farko dai muna shigo da dakunan karatun da zamuyi amfani dasu:
amfani da Miya; amfani da Json; amfani da Gtk;
Aika buƙata:
var uri = "http://gateway.marvel.com/v1/public/comics?dateRange=2014-16-03%2C2014-16-03&orderBy=-onsaleDate&limit=10&ts=1&apikey=123&hash=555224458"; var zaman = sabon Soup.SessionSync (); var message = sabon Miyan Mage. ("SAMU", uri); zaman.send_message (sako);
Url din zai nuna mana iyakar adadi 10 da suka fito tsakanin ranakun 2 (00-03-2014, 16-03-2014).
Da farko dai muna kirkirar wani zama, sannan zamu gina bukatar GET kuma mu tura ta.
Karin json:
var root_object = parser.get_root () .get_object ();
samun babban abu wato duk lambar json.
var response = root_object.get_object_member ("bayanai"); sakamakon sakamako = response.get_array_member ("sakamakon");
Zamu iya kamawa
Aiwatar da lambar:
foreach (var geonode a cikin sakamakon.get_elements ()) {var geoname = geonode.get_object (); stdout.printf ("% f \ n% s \ n% s \ n \ n", geoname.get_string_member ("id"), geoname.get_string_member ("suna"), geoname.get_double_member ("bayanin")); }
Kuna iya ganin misalai a nan.
Nuna bayanan:
Anan mun riga mun shigar da yadda muke son nuna bayanin, don zazzage hotunan da zamu iya amfani da wannan hanyar:
async na tsaye a tsaye Gdk.Pixbuf? get_img (url url) {Gdk.Pixbuf? pix = mara kyau; var fayil = File.new_for_uri (url); gwada {GLib.InputStream @input_stream = samar da fayil.read_async (Fifiko.DEFAULT, ba komai); pix = samar da sabon Gdk.Pixbuf.from_stream_at_scale_async (shigar da bayanai, 800, 600, gaskiya, ba komai); } kama (Kuskure e) {gargadi (e.message); } dawo da pix; }
Kasancewa hanyar da ake aiwatar da ita a cikin wani zaren (asynchronous) lokacin kiranta dole muyi hakan ta wannan hanyar:
get_img.begin (img_url, (obj, res) => {var pix = get_img.end (res);});
Inda img_url shine url na hoton da muke samu daga json.
Don tattara wurare:
valac --pkg gtk + -3.0 --pkg libsoup-2.4 --pkg json-glib-1.0 sunan mai amfani.vala
tips
Wasu Nasihu waɗanda zasu iya taimaka mana ƙirƙirar abokin cinikinmu / aikace-aikace:
Bayyanawa
AppIndicator laburare ne wanda yake bamu damar sanya shirin mu a matsayin manuniya a cikin sama (duka a Elementary os da Ubuntu).
Girkawa mai nunawa 3-0.1
sudo dace-samun shigar libappindicator3-dev
Tattara:
valac --pkg gtk + -3.0 --pkg mai bayyanawa 3-0.1 shirin.vala
Idan kun sami kuskure, yana iya zama saboda kuna da sabon sigar mai bayyanawa, a haka sai ku je / usr / share / vala / vapi kuma zaku ga yadda sigarku take.
Zamu iya samun misali a cikin Yanar gizon Ubuntu.
Littlean misali:
var nuna alama = sabon Mai nuna alama ("win.title", "littafin adireshin-adireshi", IndicatorCategory.APPLICATION_STATUS); nuna alama.set_status (IndicatorStatus.ACTIVE); var menu = sabon Gtk.Menu (); var abu = sabon Gtk.MenuItem.with_label ("Addara sabuwar lamba"); item.activate.connect (() => {//indicator.set_status(IndicatorStatus.ATTENTION); // CreateContact ();}); abu. nuna (); menu.haɗa (abu); abu = sabon Gtk.MenuItem.with_label ("Share lamba"); abu. nuna (); item.activate.connect (() => {//indicator.set_status(IndicatorStatus.ATTENTION); // DeleteContact ();}); menu.haɗa (abu); indicator.set_menu (menu);
Hotuna
Sanya gunki a cikin aikace-aikacenmu:
Mun fara daga mai ginin Gtk.Window aji:
gwada {// Directory na hoton wannan.icon = sabon Gdk.Pixbuf.from_file ("fcbb.png"); } kama (Kuskuren e) {stderr.printf ("kuskure:% s \ n", e.message); }
M hoto
Hoto mai sauƙi a cikin vala wanda zamu iya sanya misali a cikin layout.
hoto = sabon Gtk.Image (); hoto.set_from_file ("fcb.png");
Ra'ayi
Yi amfani da vala da gtk don abokan ciniki? a'a, daga ra'ayina ya fi kyau da sauƙi don amfani da c ++ da Qt (QML), yana jiran yin wata kasida don yin abokan ciniki a QML.
godiya ta jiki 😀, yana da kyau a ga abin da "wasu layuka kaɗan" zasu iya yi lokacin da kuna da ilimi. misalin yana ba da ra'ayoyi da yawa don wasu abubuwa 😀
Kyakkyawan nasihu, bro.
Duba ko zan iya yin guda ɗaya.