Code Challenge 2: Make a To-Do List

Description

To do list -ის (გასაკეთებელ  დავალებათა  ნუსხის) შექმნით მომხმარებელს საშუალება მიეცემა შევიდეს და აირჩიოს მისთვის სასურველლი საკითი.მნიშვნელოვანია რომ აპლკაციამ   საკითხები  დაიმახსოვროს ,იმისათვის რომ  მომხმარებელს აპლიკაციის ყოველი გახსნისას  ჰქონდეს მათზე წვდომა. მანამ სანამ ჩელენჯს სცდიდეთ,იქნებ თვალი გადაავლოთ და ისწავლოთ  ListView -ის გამოყენება.

ჩვენი  აპლიკაციის ნიმუში იხ,აქ: Technovation Challenge #2

მანამ სანამ ინსტრუქციებს წაიკითხავდეთ,მაქსიმალურად ეცადეთ, რომ ეს ჩელენჯი(გამოწვეწვა) თვითონ სცადოთ,ანუ საკუთარი ძალებით გააკეთოთ. დაიმახსოვრეთ,ეს ინსტრუქციები არის ერთადერთი გზა იმისა, რომ ჩელენჯი მაქსიმალურად იქნეს დაძლეული.წარმატებულ კოდინგს გისურვებთ!

 

Designing your screen-ეკრანის დიზაინი

ჩვენ შევქმენით აპლიკაცია, რომელიც მომხმარებელს საშუალებას აძლევს ნუსხაში (სიაში) ჩაამატონ საკითხები,ამოიღონ საკითხები,შეინახონ ( save ) სია და  გადატვირთონ სია.ამ ყველაფრისთვის საჭირო გახდა ეკრანზე გვქონოდა სამი ღილაკი.  ერთი იმისთვის ,რომ სიაში საკითხები ჩამატდეს,ერთი იმისთვის რომ  მომხმარებლის მიერ შემუშავებულოი საკითხები შეინახოს მომავლისთვის  და ერთიც გადასატვირთი ღილაკი რომელიც წაშლის სიას.

    1. ეკრანზე დაამატეთ სათაური  რომელიც მომხმარებელს  ეტყვის თუ რა უნდა გააკეთოს.
    2. დაამატეთ  textbox -ი ,რომ მომხმარებლმა შეძლოს და თავისი სამოქმედო-ნუსხა(სია)იქ შეიყვანოს.
    3. დაამატეთ ღილაკი რომელსაც მომხმარებელი დაჭერს მას შემდეგ რაც ის შევა  თავის  სამოქმედი პუნქტში .
      1. ჩვენ ამ ღილაკს გადავარქვით  ‘Enter’-ი,ამგვარად ბლოკების პროგრამირების დროს გავიხსენებთ მას  რა ფუნქცია აკისრია.
    4.  დაამატეთ ListView-ი ეკრანზე. მომხმარებელი თავის სამოქმედო სიას მისი საშუალებით იხილავს.
    5.  ‘Fill Parent’-ის შევსებისას ჩვენს მონაცემებს ვწერთ(სიმაღლე და სიგანე) , მაგრამ როცა საქმე ეკრანის დიზაინთან გვაქვს,როგორც თქვენ გენებოთ საქმე  ისე წარმართეთ .
      1. დააჭირეთ და გაიგეთ  ListView-ის  გამოყენების შესახებ უფრო მეტი .
    6. ეკრანზე დაამატეთ  save-ღილაკი რათა დაიცვათ მონაცემები და reset-ღილაკი სიის წასაშლელად.
      1. ჩვენ ამ ღილაკებს დავარქვით  ‘Save’ and ‘Reset’.
    7. სურვილისამებრ: ჩვენ დავამატეთ  ორი   Horizontal Arrangements-ი   ჩვენი ეკრანის განლაგების ორგანიზებისთვის,მაგრამ თქვენს ეკრანს როგორც გინდათ ისე გაუწიეთ ორგანიზება .

steps 1-6

  1. დაამატეთ  TinyDB   -ი   storage menu-დან . როდესაც მას ეკრანზე დასვავთ ის უხილავ კომპონენტად მოგევლინებათ( ‘Non-visible component’).

step 7

 

სამოქმედო სიაში პარამეტრების ჩამატება

ჩვენი აპლკაციის მონიტორის საშუალებით მომხმარებელი შემოდის , სიაში მონაცემებს ახარისხებს  და შემდეგ აჩვენებს მას  ListView-ის მეშვეობით.ჩვენ ეს გავაკეთეთ ცვალებადი სიის შექმნისთ სახელად items  .როდესაც ჩვენი მომხმარებელი დააჭერს   enter  ღილაკს,ჩვენ items-ში ვუმატებთ იმას რაც  textbox-ში გვქვს და ის გამოჩნდება ListView-ში.

  1. შექმენით  items-ი რომელიც თქვენს სამოქმედო სიის მონაცემებს  მართავს.დაიწყეთ ცარიელი სიის შექმნით.
  2. ხელი ჩასჭიდეთ   button.click block-ს თქვენი enter  ღილაკისთვის .
  3. აიღეთ add items to list block-ი   Lists-დან. ჩასვით ის  enter.click -ში.
  4. ჩასვით items-ი  სიის სახელად  და  TextBox1.Text -ი როგორც სიაში ჩასამატებელი პუნქტი.
  5. ხელი ჩაავლეთ  set ListView1.Elements to block -ს  და ჩასვით  add items to list block-ის ქვეშ.
  6. დაამატეთ თქვენი items-ი   set ListView1.Elements to block-ში.
  7. სურვილისამებრ:აპლიკაცია გამოსაყენებლად უფრო ადვილი რომ ყოფილიყო,მაშინ როცა მომხმარებელი დააჭერდა “შესვლა” ღილაკს   დავმალეთ კლავიატურა .ამის გასაკეთებლად დააჭირეთ TextBox1-ს   და ხელი ჩასჭიდეთTextBox1.HideKeyboard block-ს.

blocks steps 1-7

გადამოწმება #1

დროა გადაამოწმეთ ,მუშაობს თუ არა ის რაც ეს-ესაა შექმენით.მოიმარჯვეთ ტელეფონი ან ემულატორი და  გამოსცადეთ თქვენი აპლიკაცია.როდესც textbox-ში რაიმეს ბეჭდავთ  და აჭერთ enter  ღილაკს  ის უნდა გამოჩნდეს ListView-ში.თუკი აპლიკაცია არ მუშაობს ,სანამ გააგრძელებდეთ,უკან დაბრუნდით და მოძებნეთ რა შეგეშალათ. თუკი კვლავ შეფერხდით მენტორს ან გუნდის წევრებს შეეხმიანეთ.

 to-do list-დან ჩანაწერების წაშლა

როდესაც  მომხმარებელი to-do list-ში  დავალების შესრულებას  დაასრულებს  ,მაგრამ აღარ სურს მისი ხილვა იქ, ListView-ში დააჭერს იმას,რისი წაშლაც უნდა და წაშლის .

ჩვენ ამისათვის შევქმენით ცვალებადი  ელემენტი სახელად index-ი. ეს ადგილობრივი ელემენტია რადგანაც მისი გამოყენება კოდინგში მხოლოდ ერთხელ დაგვჭირდა. ეს ყველაფერი კი იმისთვის შევქმენით ,რომ  მომხმარებელს ქონოდა ინდექსი რომელსაც ListView-ში აირჩევდა. და  index-ს მივანიჭეთ იმის შესაძლებლობა რომ აპლიკაციისთვის ეთქვა  რა ამოეღო items-დან.  ListView-ი განახლდება, მას შემდეგ რაც საკითხების ნუსხა შეიცვლება.

  1. ჩასჭიდეთ   ListView1.AfterPicking block-ს.
  2. შექმენით ადგილობრივი ცვალებადი ელემენტი სახელწოდებით  index   და   დასვით იქ  რითიც  თქვენ გნებავთ,რომ დაიწყოთ.  ჩვენ ნულით დავიწყეთ და შესაბამისად იქ დავსვით..Create a local variable called  and set it whatever you like to start out. We set our to zero.
  3. აიღეთ set ‘name’ to  ცვალებადი ბლოკი და წაიღეთ ცვალებად index-ში.
  4.  მიამაგრეთ ბლოკები  index is list, thing, list-ები.
  5. მიანიჭეთ  thing-ს  შესაძლებლობა ,რომ იყოს  ListView1.Selection-ი   და  list -ს  მიანიჭეთ შესაძლებლობა, რომ იყოს   items list-ი.
  6.  ჩასჭიდეთ remove list item block -ს და ჩასვით  თქვენს ადგილობრივ ცცვალებად ბლოკში.
  7. დასვით items -ი   ისე რომ იყო  list-ი  და  index -ი  ისე, რომ იყოს the index.
  8. მოათავსეთ set ListView1.Elements to block -ი თქვენი ნარინჯისფერი ცვალებადი ბლოკის ქვეშ  და დააკავშირეთ თქვენი items-ი  მასთან.

blocks2

გადამოწმება #2

დროა გადაამოწმოთ აპლიკაცია მუშაობს თუ არა!მოიმარჯვეთ  ტელეფონი ან ემულატორია დაიწყეთ ტესტი. ტესტირების დროს აპლიკაციაში უნდა შეძლოთ იმ პარამეტრებზე წვდომა ,რომლებიც  სამოქმედო ნუსხაში შეიყვანეთ  და ამავე დროს უნდა შეძლოთ მათი წაშლა. თუკი ამას ვერ ახერხრბთ ე.ი.  აპლიკაცია არ მუშაობს  და შესაბამისად ,უკან უნდა დაბრუნდეთ და კოდი გადაამოწმოთ.თუკი კვლავ შეფერხდით  მენტორს ან გუნდის წევრებს დაუკავშირდით  ან იხილეთ გაკვეთილები  ListView-ის შესახებ!

 Reset-ღილაკის  პროგრამირება

იმისათვის, რომ აპლიკაცია გამოსაყენებლად უფრო ადვილი ყოფილიყო,ჩავამატეთ reset ღილაკი რომელიც to-do list-ის გარეთ ყველა მონაცემს შლის.ეს ღილაკი დავაპროგრამეთ და როდესაც მომხმარებელი მას დააჭერს ხელს ის  შეძლებს   და    list items-ებს   გადაიტანს  ცარიელ   list-ში . შემდეგ  გადავტვირთეთ ListView -ი რათა ახალი ცარიელი  contents of the list items-ები გამოჩენილიყო.

  1. reset  ღილაკისთვის ხელი ჩაავლეთ  when button.click block-ს.
  2. აიღეთ   set ‘name’ to variable block(ცვალებადი ბლოკი ) და აირჩიეთ  თქვენი   items list-ი.
  3. მიამაგრეთ   create empty list block-ი.
  4. ხელი ჩაავლეთ  set ListView1.Elements to block -ს  და მიამაგრეთ  get items variable block-ი.

Reset steps 1-4

გადამოწმება #3

დარწმუნდით ,რომ  reset   ღილაკი მუშაობს!მპიმარჯვეთ ტელეფონი ან ემულატორი  და დატესტეთ  აპლიკაცია. მას შემდეგ რაც to-do list-ში მონაცემებს შეიყვანთ ,უნდა დააჭიროთ reset  ღილაკს და მან list-ი უნდა წაშალოს.  თუკი ისევ შეფერხდით დაუკავშირდით მენტორს ან გუნდის წევრებს!!!

 TinyDB-ს პროგრამირება

როდესაც მომხმარებელი ხურავს აპლიკაციას, to-do list-ი აპლიკაციაში მეორედ შესვლამდე შეინახება.ჩვენ დავაპროგრამეთ “save” ღილაკი ისე რომ მონაცემთა ბაზისთვის დაგვერქვა(TinyDB)  და შეგვენახა items list-ი. მონაცემთა ბაზა მომხმარებლის მიერ შქმინლ to do list-ს იმახსოვრებს   ზუსტად ისეთს, როგორიც იმ მომენტისთვის არის და იქ ინახავს შემდეგ ვიზიტამდე.

  1.  save  ღილაკისთვის ხელი ჩაავლეთ when button.Click block-ს.
  2. დაამატეთ  call TinyDB1.StoreValue block.
  3. დაამატეთ  tag name.
  4. დაამატეთ თქვენი  items variable(ცვალებადი ელემენტები)  valueToStore-ში.

TinyDB steps 1-4

 

ჩვენი აპლიკაცია მონაცემთა ბაზის შემოწმებას to-do lists-ების  შემოწმებით იწყებს.ამის გასაკეთებლად გამოვიყენეთ   when Screen1.Initialize block  -ი, რომელიც  Screen1-ზე ჩნდება. ჩვენი  list items-  ი დავსვით მონაცემთა ბაზაში”ListData”-ს ქვეშ. შენახული მონაცემების არ არსებობის შემთხვევაში აპლიკაციას მივეცით იმის საშუალება ,რომ შექმნას empty list(ცარიელი სია )ან blank to-do list(დავალებათა ცარიელი სიაის ბლანკი). ამის შემდეგ აპლიკაცია აჩვენებს იმას რაც არის items variable-ში( ცვლად ელემენტებში) ,რაც ამავე დროს წარმოადგენს stored data-ს (შენახულ მონაცემს) ან empty list-ს (ცარიელ სიას).

  1. ჩასჭიდეთ  when Screen1.Initialize block-ს.
  2. ჩასჭიდეთ  set ‘variable name’ to block-ს და დასვით ისე ,რომ გახდეს თქვენი items list.and set the variable to be your
  3. მოაცემთა  ბაზის სამართავად გამოიყენეთ call TinyDB1.GetValue block-ი.
  4. შეიყვანეთ  tag-ის სახელი, რომელიც   list for the tag-ის შესანახად გამოგიყენებიათ.name you used to save the.
  5. დასვით  create empty list block-ი  valueIfTagNotThere-თვის .
  6. ჩასჭიდეთ  set ListView1.Elements to block -ს და მიამაგრეათ თქვენს  items variable-ს.

TinyDB steps 1-6

ბოლო გადამოწმება

დროა გადაამოწმოტ აპლიკაცია მუშაობს თუ არა! ჩამოტვირთეთ თქვენი აპლიკცია ტელეფონში ან ემულატორში,შეიყვანეთ მონაცემები(რამოდენიმე)თქვენსავე to-do list-ში. დააჭირეთ save ღილაკს და დახურეთ  AI companion app-ი . შემდეგ კვლავ გახსენიტ აპლიკაცია და გადაამოწმეთ მონაცემები ,რაც შეიყვანეთ იქ არის თუ არა.თუკი იქ არ აღმოჩნდებიან მოგიწევთ უკან დაბრუნდეთ და გადაამოწმეთ კოდში რამე შეცდომა ხომ არ დაუშვით.დარწმუნდით, რომ  ყველაფერი სწორად ჩაწერეთ ,გასათვალისწინებელია დიდი ასობგერებიც.თუკი ყველაფერი მუშაოს ,მაშ გ ი ლ ო ც ა ვ თ , თქვენ დაასრულეთ the challenge-ი (ჩელენჯი, გამოწვევა)!

ისევ შეფერხება?ჩამოტვირთეთ კოდის რესურსები.ჩამოტვორთვის და გამოყენების ინსტრუქციეი  იხ,აქ:

 Instructions


Download the source code