ผู้เผยแพร่ศาสนาโกหก firemonkey ห่วยแตก

เวลาผ่านไปพอสมควรแล้วตั้งแต่คำว่า FireMonkey เป็นที่คุ้นเคยไม่มากก็น้อย หากไม่ใช่สำหรับนักพัฒนาทุกคน อย่างน้อยก็สำหรับผู้ที่ใช้ Delphi ในช่วงเวลานี้ มีหนังสือเกี่ยวกับ FireMonkey บทความเกี่ยวกับ FireMonkey รายการเกี่ยวกับ FireMonkey ในบล็อกจำนวนมาก อ่านทั้งหมดนี้น่าสนใจมาก แต่ไม่มีทฤษฎีใดมาแทนที่การปฏิบัติได้ และฉันก็เหมือนกับหลาย ๆ คนก่อนหน้านี้ที่อยากจะลองเขียนบางอย่างโดยใช้ FireMonkey

อย่างไรก็ตามในการทำเช่นนั้นมีปัญหาเกิดขึ้น ด้วยเหตุผลบางอย่าง ฉันตัดสินใจว่าฉันแค่ต้องทำโปรเจกต์การทำงานที่ไม่ซับซ้อนมากนัก

เพื่ออธิบายว่าทำไมสิ่งนี้ถึงกลายเป็นปัญหาสำหรับฉัน มันต้องใช้การพูดนอกเรื่อง (บางคนต้องการเขียนโคลงสั้น ๆ ) การท่องไปในอดีตของฉันในฐานะนักพัฒนา อธิบายมุมมองของฉันเกี่ยวกับการเขียนโปรแกรมโดยใช้ Delphi

ฉันต้องบอกว่าฉันเริ่มใช้ Delphi บน Windows 3.1 นั่นคือจากเวอร์ชันแรก และตั้งแต่นั้นมาฉันก็เรียน VCL ศึกษาในต้นฉบับเพื่อที่จะพูด ดู, จ่าหน้า, ติดตามซอร์สโค้ด ครั้งแล้วครั้งเล่า.

เป็นที่ทราบกันดีว่าในหลาย ๆ ครั้งชุดส่วนประกอบที่จัดส่งมาพร้อมกับ Delphi รวมถึงส่วนประกอบของบุคคลที่สามซึ่งควรจะเติมเต็มช่องว่างใน VCL และอาจผ่านการควบคุมคุณภาพบางประเภทก่อนที่จะรวมเข้าด้วยกัน ส่วนประกอบเหล่านี้บางส่วนยังคงจัดหามาจนถึงทุกวันนี้ เอาอินดี้เหมือนเดิม ฉันไม่ต้องการที่จะรุกรานใคร นี่คือความคิดเห็นส่วนตัวของฉันเท่านั้น ซึ่งใช้กับตัวฉันเองในฐานะผู้พัฒนาส่วนประกอบ: ไม่มีชุดใดชุดหนึ่งที่ได้รับการคิดอย่างลึกซึ้งและนำไปใช้เช่นเดียวกับ VCL ขนาดใหญ่และหลากหลาย ไม่ ฉันไม่ได้หลอกว่าเป็นความจริงขั้นสูงสุด และแน่นอนว่ามีข้อผิดพลาดมากมายใน VCL เอง การตัดสินใจที่ก่อให้เกิดความเข้าใจผิด ทำให้เกิดการปฏิเสธ และคุณต้องการไม่เห็นด้วย แต่ฉันมักจะได้รับความประทับใจ สไตล์เครื่องแบบ. ในความคิดของฉัน VCL มีคอร์ที่สวยงามและแข็งแกร่งที่รองรับการออกแบบ Delphi ทั้งหมดและรอบ ๆ ซึ่งสร้างทั้งโครงสร้างพื้นฐานซอฟต์แวร์และชุมชนนักพัฒนา ขอบคุณ VCL ส่วนใหญ่อีกครั้งในความคิดของฉันข่าวลือเกี่ยวกับการตายของ Delphi ยังคงเป็นข่าวลือ และเมื่อส่วนประกอบของบุคคลที่สามรวมอยู่ในการส่งมอบ VCL ก็จะสังเกตเห็นได้ทันทีว่าแตกต่างกัน

แต่แล้วเวลาก็มาถึง ฉันได้ยินมาว่า VCL เป็นเทคโนโลยีที่ล้าสมัย เทคโนโลยีที่ควรทิ้งไว้ในอดีต นักพัฒนาควรใช้โครงการใหม่ทั้งหมดของพวกเขาบน FireMonkey แต่สำหรับโครงการเก่า ... จะเป็นการดีหากโอนไปยังรางใหม่ FireMonkey อยู่ทุกที่และทุกเวลา และฉันได้ยินมาจากแหล่งต่างๆ และค่อนข้างถาวร ไม่ ไม่มีใครฆ่า VCL เขาอยู่กับเรา แต่เขาไม่ได้เป็นอันดับหนึ่งอีกต่อไป เขาควรจะเป็นสแตนด์อิน อย่างน้อยนั่นเป็นวิธีที่ฉันเข้าใจสิ่งที่กำลังพูดถึงเกี่ยวกับอนาคตของผลิตภัณฑ์

โดยหลักการแล้ว ฉันเข้าใจการจัดตำแหน่งนี้ มีหลักสูตรสำหรับหลายแพลตฟอร์ม และที่สำคัญกว่านั้น สำหรับข้ามแพลตฟอร์ม ท้ายที่สุดแล้ว VCL คืออะไร? ไลบรารีองค์ประกอบภาพ ไลบรารีองค์ประกอบภาพ คุณอาจไม่เห็นด้วยกับเรื่องนี้ ตัวอย่างเช่น ฉันได้พิจารณาส่วนประกอบที่ไม่ใช่ภาพจำนวนมากเสมอ และไม่ใช่ส่วนประกอบ แต่เป็นเพียงคลาส ซึ่งเป็นส่วนสำคัญของ VCL และคลาสและส่วนประกอบของบุคคลที่สามจำนวนมาก - ความต่อเนื่อง ส่วนขยายของ VCL . ฉันไม่สามารถถือว่าทายาทของ TDataset ไม่ใช่ส่วนหนึ่งของ VCL ตัวอย่างเช่น คำว่า DBExpress Library จะบอกว่าไม่ใช่ VCL เหมือนเดิม เห็นได้ชัดว่า Embarcadero แบ่งเสาหินจากมุมมองของฉัน VCL ออกเป็นห้องสมุดต่างๆ ไม่แน่นอน ไม่แยกจากกันโดยสิ้นเชิง แต่กระนั้นก็ตาม และถ้าคุณใช้มุมมองนี้ FireMonkey ตั้งใจที่จะแทนที่ส่วนที่มองเห็นของ VCL (ฉันจะยังเรียกไลบรารีคลาสและคอมโพเนนต์ที่สมบูรณ์ได้อย่างไร อาจจะเป็นไลบรารีคอมโพเนนต์ของ Borland ได้อย่างไร)

ส่วนประกอบทางภาพของห้องสมุดสร้างขึ้นจากอะไร รอบระดับต่ำ องค์ประกอบพื้นฐานจัดทำโดยระบบปฏิบัติการ ตัวจัดการหน้าต่าง แบบอักษร หน้าต่าง องค์ประกอบอินพุต ข้อความ บริบทของอุปกรณ์ และอื่น ๆ อีกมากมาย - สิ่งเหล่านี้ไม่ใช่แนวคิดของไลบรารีที่มาพร้อมกับ Delphi แต่เป็นแนวคิดของระบบปฏิบัติการ ใช่ ถูกต้อง Windows และถ้าคุณต้องการสร้างไลบรารี่ข้ามแพลตฟอร์ม มันก็มีเหตุผลที่จะปฏิเสธโครงสร้างพื้นฐานที่เสนอโดยระบบปฏิบัติการที่รันโปรแกรมที่เขียนโดยใช้ไลบรารี

นี่คือสิ่งที่ FireMonkey พยายามทำ พวกเขากำลังพยายามสร้างโครงสร้างพื้นฐานตามกลไกพื้นฐานที่สนับสนุนโดยระบบปฏิบัติการต่างๆ ที่สามารถแทนที่บริการที่ระบบปฏิบัติการนำเสนอได้

หลายคนจำได้ว่าพยายามทำข้ามแพลตฟอร์มไม่เฉพาะไลบรารีเท่านั้น แต่ยังมี Delphi เองด้วย. ควบคู่ไปกับ Delphi 6 ผลิตภัณฑ์ Kylix และไลบรารี CLX ได้รับการเผยแพร่ ทั้งหมดนี้ทำเพื่อให้สามารถพัฒนาสำหรับ Linux ได้ อย่างไรก็ตาม Linux ไม่มีแนวคิดหน้าต่าง GUI พื้นฐานหลายอย่างที่ Windows ทำ อินเทอร์เฟซหน้าต่างสำหรับ Linux โดยทั่วไปไม่ใช่ปรากฏการณ์ดั้งเดิม นี่เป็นแอปพลิเคชันเสริม และฉันต้องเขียนไลบรารีสังเคราะห์บางประเภท ด้วยความช่วยเหลือของมันจึงเป็นไปได้ที่จะเขียนโปรแกรมสำหรับทั้ง Windows และ Linux อย่างไรก็ตาม ฉันยังจำความรู้สึกนั้นได้ ซึ่งไม่ใช่ความผิดหวัง แต่เป็นความไม่สะดวกที่น่ารำคาญ ซึ่งฉันประสบเมื่อพยายามใช้อะนาลอกของส่วนประกอบภาพต่างๆ จาก CLX ฉันเริ่มหายไปมาก สิ่งที่ฉันเคยทำโดยไม่ได้คิดเมื่อพัฒนาด้วย VCL กลายเป็นเรื่องยาก แตกต่างอย่างมาก หรือทำไม่ได้เลยโดยใช้ CLX

ฉันรู้สึกเหมือนกันเมื่อเปลี่ยนจาก BDE เป็น DBExpress เก่า คุ้นเคยจาก Field Test-a BDE (Borland ใช้ใน Quattro Pro แล้ว สำหรับวินโดวส์และใน Paradox สำหรับ Windows และมันถูกเรียกว่า ODAPI จากนั้น IDAPI และในความคิดของฉัน ODBC ของ Microsoft ถูกตัดออกไป) ได้รับการประกาศว่าเทคโนโลยีล้าสมัย ซึ่งควรหลีกทางในโครงการใหม่ไปยังไลบรารีใหม่ ในตอนแรกฉันมักจะพลาดบางสิ่งใน DBExpress โดยเฉพาะความรู้

ในเวลาเดียวกัน ฉันไม่ต้องการที่จะตำหนิหรือวิพากษ์วิจารณ์ห้องสมุดที่ระบุไว้ข้างต้น หรือการตัดสินใจที่นำไปสู่การปรากฏตัว มันเกี่ยวกับความประทับใจของฉัน บางครั้งความประทับใจแรกพบ

ตอนนี้อาจชัดเจนขึ้นเล็กน้อยว่าทำไมการตัดสินใจเขียนโครงการทำงานขนาดเล็กโดยใช้ FireMonkey ทำให้เกิดปัญหามากมาย เป็นเวลาหลายปีในการพัฒนาโครงการ โครงการ และโครงการ มีรูปแบบตายตัวบางอย่างเกิดขึ้น แม่แบบบางอย่างของสิ่งที่ต้องทำและทำอย่างไร และในกรณีของฉัน ฉันต้องเผชิญกับข้อเท็จจริงที่ว่าต้องเปลี่ยนเทมเพลต เนื่องจากคุณไม่สามารถถ่ายโอนทุกสิ่งที่คุณคุ้นเคยกับการใช้ VCL ไปยังโปรเจ็กต์ที่สร้างบน FireMonkey

ในช่วงเริ่มต้นของโปรเจกต์นี้ ฉันรู้สึกได้ถึงความเหมือนเดจาวู ได้แก่ความรู้สึกไม่สบาย. ตัวอย่างเช่น องค์ประกอบอินพุตปกติไม่มีคุณสมบัติมากมาย เคล็ดลับที่ได้รับการยอมรับอย่างมั่นคงในทางปฏิบัติโดยอิงตามเคล็ดลับที่เกี่ยวข้องกับความรู้เกี่ยวกับคุณลักษณะบางอย่างของระบบปฏิบัติการ ใช้ไม่ได้ในบริบทใหม่ ไม่ต้องพูดถึงว่าส่วนประกอบบางอย่างมีการเปลี่ยนแปลงอย่างรุนแรง

ความแตกต่างที่สำคัญอีกอย่างหนึ่ง โครงการประเภทใดที่ต้องทำในที่ทำงาน หาก (งาน) ไม่เกี่ยวข้องกับการเขียนคอมไพเลอร์ ระบบการสร้างแบบจำลอง หรือสิ่งอื่นใดที่เป็นวิทยาศาสตร์สูง ฉันคิดว่าส่วนใหญ่จะเกี่ยวกับการพัฒนาบางอย่างที่เกี่ยวข้องกับการใช้ฐานข้อมูล ยิ่งกว่านั้น บางอย่างที่เป็นวิทยาศาสตร์สูงก็สามารถใช้บริการจาก DBMS ได้เช่นกัน

ที่นี่มีการซุ่มโจมตีอีกรอฉันอยู่ ด้วยเหตุผลบางประการ เมื่อคุณพบว่า FireMonkey ไม่มีองค์ประกอบที่เน้นการทำงานกับข้อมูลที่จัดเก็บไว้ในฐานข้อมูล แสดงว่าคุณยังไม่พร้อมสำหรับสิ่งนี้ (กล่าวอย่างสุภาพ) แม้ว่าฉันจะได้อ่านเกี่ยวกับเรื่องนี้หลายครั้งแล้วและคุณรู้ (ในทางทฤษฎี) ว่าคุณควรใช้อะไร เกี่ยวกับ Live Bindings

ฉันไม่ต้องการที่จะโต้แย้งว่าโปรแกรมเมอร์เจ๋ง ๆ ควรใช้ส่วนประกอบ db-aware หรือไม่ แสดงผล แก้ไข และบันทึกในที่สุด ซึ่งอีกครั้งไม่เลวหรือดี มันเพิ่งเกิดขึ้นอย่างนั้นสำหรับฉัน

นี่เป็นการสรุปโพสต์ความประทับใจแรกของฉัน บรรทัดถัดไปเป็นเรื่องราวเกี่ยวกับสิ่งที่พวกเขาเอาชนะได้ในขณะที่ทำงานในโครงการ

กว่าสามปีผ่านไปตั้งแต่แผนก CodeGear ที่รับผิดชอบในการสร้างเครื่องมือที่มีชื่อเสียงระดับโลก เช่น Delphi, C++ Builder และ JBuilder รวมถึง Interbase DBMS ได้กลายเป็นส่วนหนึ่งของ Embarcadero Technologies ซึ่งเป็นบริษัทที่เป็นที่รู้จักในด้านการออกแบบและดูแลระบบฐานข้อมูล เครื่องมือ และสองปีนับตั้งแต่ที่เราคุยกันในหน้านิตยสารของเราว่าจะคาดหวังอะไรในการพัฒนาเครื่องมือที่เป็นที่นิยมในหมู่นักพัฒนาชาวรัสเซีย เราถาม David Intersimone รองประธานฝ่ายนักพัฒนาสัมพันธ์และหัวหน้าผู้เผยแพร่ศาสนาของ Embarcadero Technologies และ Kirill Rannev หัวหน้าสำนักงานตัวแทนของ Embarcadero Technologies ในรัสเซีย สำหรับผู้อ่านที่อายุน้อยที่สุด เราจะแจ้งให้คุณทราบว่านี่ยังห่างไกลจากการสัมภาษณ์ครั้งแรกที่ David และ Kirill ให้กับ ComputerPress - ความร่วมมือของเราดำเนินมาถึงทศวรรษที่สองแล้ว และในช่วงเวลาเดียวกันนี้ เราเผยแพร่บทวิจารณ์เกี่ยวกับเครื่องมือการจัดการฐานข้อมูลเป็นระยะๆ ซึ่งให้ความสนใจกับผลิตภัณฑ์ของ Embarcadero เป็นอย่างมาก

สำนักพิมพ์คอมพิวเตอร์:เดวิด แผนกของคุณเป็นส่วนหนึ่งของเอ็มบาร์คาเดโรมาสามปีแล้ว เมื่อสองปีก่อน คุณเต็มไปด้วยความกระตือรือร้นที่ได้กลายเป็นส่วนหนึ่งของบริษัทที่ใกล้ชิดกับคุณด้วยความตั้งใจและจิตวิญญาณ ช่วงนี้มีอะไรเปลี่ยนไปไหม? คุณและเพื่อนร่วมงานของคุณรู้สึกกระตือรือร้นเหมือนกันหรือไม่?

ใช่ ฉันยังคงกระตือรือร้น การเปลี่ยนแปลงหลักที่เกิดขึ้นตั้งแต่เราเข้ามาเป็นส่วนหนึ่งของบริษัท Embarcadero คือมีการลงทุนจำนวนมากในการพัฒนา Delphi จำนวนพนักงานที่ทำงานเกี่ยวกับเครื่องมือการพัฒนาเพิ่มขึ้น จำนวนเทคโนโลยีที่เราสามารถพัฒนาหรือได้รับเพิ่มขึ้น หากจำเป็น

การเปิดตัว RAD Studio XE 2 ซึ่งเราวางแผนที่จะสาธิตในกรุงมอสโกเป็นการเปิดตัวที่ใหญ่ที่สุดของผลิตภัณฑ์นี้ด้วยความสามารถมหาศาลและแพลตฟอร์มที่รองรับจำนวนมากตั้งแต่รุ่นแรกของ Delphi ซึ่งสร้างขึ้นสำหรับ Windows 16 บิตและนวัตกรรมเดิม ผลิตภัณฑ์ที่เชื่อมต่อวิธีการคอมโพเนนต์และการคอมไพล์กับรหัสเครื่อง ตอนนี้เราสนับสนุนการพัฒนาไม่เฉพาะสำหรับ Windows แต่ยังสำหรับ Macintosh ไม่ต้องพูดถึงการพัฒนาเว็บและการสร้างแอปพลิเคชันสำหรับอุปกรณ์พกพา และแอปพลิเคชันเหล่านี้สำหรับแพลตฟอร์มต่างๆ สามารถมีรหัสเดียวได้

แพลตฟอร์มการพัฒนาใหม่ FireMonkey เป็นความร่วมมือระหว่าง Embarcadero และ KSDev บริษัทรัสเซียใน Ulan-Ude ที่เพิ่งเข้าซื้อกิจการเมื่อเร็ว ๆ นี้ ซึ่งเป็นผู้ผลิตส่วนประกอบกราฟิกแบบเวกเตอร์ DirectX และ OpenGL เทคโนโลยีเอฟเฟกต์กราฟิก และส่วนประกอบ Delphi โดยใช้ จีพียูด้วย PixelShader 2.0 เราซื้อบริษัท KSDev (ดู ksdev.ru) เมื่อปีที่แล้วและเริ่มทำงานร่วมกันเพื่อสร้างเครื่องมือพัฒนาหลายแพลตฟอร์มที่มีแพลตฟอร์มสำหรับพัฒนาแอปพลิเคชัน FireMonkey พร้อมส่วนประกอบสำหรับ Delphi และ C ++ Buider สำหรับสร้างส่วนต่อประสานผู้ใช้แอปพลิเคชัน การผสานรวม ด้วยฐานข้อมูล การประมวลผลกราฟิกโดยใช้ตัวประมวลผลกราฟิกและการรวมเข้ากับระบบปฏิบัติการ

เมื่อใช้ FireMonkey คุณสามารถสร้างแอปพลิเคชันที่เรียกใช้ CPU และ GPU ร่วมกัน จากนั้นใช้คอมไพเลอร์และไลบรารีรันไทม์ที่แตกต่างกัน (Run-time Libraries, RTL) เพื่อคอมไพล์สำหรับ Windows, Mac OS หรือ iOS แทนการเรียนรู้การเขียนโปรแกรมโดยใช้ต่างๆ ห้องสมุดกราฟิกศึกษา API ของ Platform ต่างๆ ที่มี ระบบต่างๆพิกัดและความสามารถที่แตกต่างกัน นักพัฒนาที่ใช้ Delphi และ C++ Builder สามารถใช้วิธีการคอมโพเนนต์เดียวกัน แก้ไขแบบฟอร์มด้วยภาพ และเชื่อมต่อกับฐานข้อมูลโดยการย้ายคอมโพเนนต์ด้วยเมาส์ มันเป็นพื้นฐาน วิธีการใหม่สร้างแอปพลิเคชันที่ทำงานบนแพลตฟอร์มต่างๆ และอนาคตก็อยู่กับมัน หากคุณต้องการเพิ่มการรองรับระบบปฏิบัติการและแพลตฟอร์มอื่นๆ ให้กับแอปพลิเคชันของคุณ คุณไม่จำเป็นต้องออกแบบและพัฒนาใหม่ แค่คอมไพล์ใหม่ก็เพียงพอแล้ว

เราสร้างคอมไพเลอร์ใหม่ที่สร้างรหัสเนทีฟ วันนี้มีคอมไพเลอร์ Delphi สำหรับ 32 บิตและ 64 บิต รุ่นของ Windows, 32 บิต เวอร์ชัน Mac OS 10 และเรากำลังทำงานกับคอมไพเลอร์ Delphi และ C++ Builder เจนเนอเรชั่นถัดไปที่จะให้คุณสร้างโค้ดเนทีฟประสิทธิภาพสูงสำหรับทั้งแพลตฟอร์มเหล่านี้และแพลตฟอร์มอื่นๆ เช่น Android หรือ Linux และคงการออกแบบเดียวกัน คอมโพเนนต์เดียวกัน รหัสเดียวกันโดยใช้คอมไพเลอร์และไลบรารีรันไทม์ที่แตกต่างกัน

อย่างที่คุณเห็น ฉันมีเหตุผลเพียงพอสำหรับความกระตือรือร้น และนักพัฒนาที่ฉันพบทั่วโลกรู้ว่า Embarcadero กำลังลงทุนจำนวนมากใน Delphi และ C++ Builder รวมถึงเครื่องมือพัฒนา PHP

เคพี:คุณมีความคืบหน้าอะไรบ้างในการรวมเครื่องมือของทั้งสองบริษัทในช่วงสองปีที่ผ่านมา Embarcadero มีแผนอย่างไรสำหรับอนาคตในพื้นที่นี้

DI.:ในเวลาที่แผนก CodeGear กลายเป็นส่วนหนึ่งของ Embarcadero บริษัทนี้มีทีมพัฒนาในโตรอนโต มอนเตร์เรย์ และโรมาเนีย เราเคยและยังคงอยู่ในสกอตส์แวลลีย์และในรัสเซียในเซนต์ปีเตอร์สเบิร์ก Embarcadero มีเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และผู้ดูแลระบบฐานข้อมูล ส่วน CodeGear มีเครื่องมือในการพัฒนาแอปพลิเคชัน แต่ส่วนหลังก็ใช้ฐานข้อมูลเช่นกัน การควบรวมบริษัทเป็นการผสมผสานระหว่างความเชี่ยวชาญ ความรู้ในด้านฐานข้อมูล การเพิ่มประสิทธิภาพโค้ด รวมถึงโค้ดเซิร์ฟเวอร์ การควบรวมกิจการยังส่งผลให้เกิดการสร้างผลิตภัณฑ์ใหม่ AppWave ซึ่งเป็นเทคโนโลยีพิเศษสำหรับเปลี่ยนแอปพลิเคชัน Windows ธรรมดาให้กลายเป็นสิ่งที่ใช้งานง่ายมาก (เช่น แอปพลิเคชันสำหรับ iPhone หรืออุปกรณ์อื่นๆ) AppWave อนุญาตให้คุณไม่ติดตั้งแอปพลิเคชัน แต่เพียงเลือกและเรียกใช้จากเซิร์ฟเวอร์ที่จัดเก็บแอปพลิเคชัน (แอพ) ที่เตรียมไว้ ในขณะที่จะดำเนินการบนคอมพิวเตอร์ของผู้ใช้โดยไม่ต้องทำการเปลี่ยนแปลงในรีจิสทรีและ พื้นที่ระบบ ระบบไฟล์. อย่างไรก็ตาม เบราว์เซอร์แอปพลิเคชัน AppWave เขียนด้วยภาษาเดลฟี Embarcadero ใช้ Dephi เพื่อการพัฒนาของตนเองและความเชี่ยวชาญด้านการพัฒนาแอปพลิเคชันของเรา

แอพ iPhone (iOS) สร้างโดย
โดยใช้แพลตฟอร์ม FireMonkey

คุณยังสามารถใช้การรวมเครื่องมือการพัฒนาของเราและ DB Optimizer เพื่อเพิ่มประสิทธิภาพการสืบค้น SQL เมื่อสร้างแอปพลิเคชัน ด้วยการส่งรหัส SQL ไปยัง DB Optimizer โดยตรง คุณสามารถทำโปรไฟล์ ทดสอบ และส่งคืนเวอร์ชันที่ปรับให้เหมาะสมกลับไปยังสภาพแวดล้อมการพัฒนา ความเชี่ยวชาญด้านฐานข้อมูลของ Embarcadero ได้ปรับปรุงเทคโนโลยี DataSnap ด้วยเช่นกัน ขอบคุณนักพัฒนาจากโตรอนโต เราได้รับความรู้มากมายเกี่ยวกับสถาปัตยกรรมของระบบและฐานข้อมูลหลายชั้น ขณะนี้เรามีความเชี่ยวชาญร่วมกันในรหัสเซิร์ฟเวอร์และขั้นตอนการจัดเก็บในทั้งสองบริษัท เรามีเครื่องมืออย่าง RapidSQL และ DB Change Manager และสภาพแวดล้อมการพัฒนาที่ทำให้การสร้างโค้ดฝั่งเซิร์ฟเวอร์เป็นเรื่องง่าย เช่น เทคโนโลยี Code Insight และ Code Completion ที่ทำให้สามารถสร้างข้อมูลเชิงลึกของ SQL และเทคโนโลยี SQL Completion ได้ วิธีการทั่วไปของเราในการสร้างรหัสไคลเอนต์และเซิร์ฟเวอร์ ซึ่งเป็นปรัชญาร่วมกันของเรา ช่วยให้เราสามารถแบ่งปันคุณสมบัติทั่วไประหว่างเครื่องมือการจัดการฐานข้อมูลและเครื่องมือพัฒนาแอปพลิเคชัน

คิริลล์ รันเนฟ:ฉันต้องการเพิ่มสิ่งที่สำคัญ จากมุมมองทางการค้า สิ่งสำคัญคือเราต้องส่งมอบเครื่องมือของเราอย่างไร ตัวอย่างเช่น RAD Studio XE 2 Ultimate รุ่นใหม่มีเครื่องมือ DB Power Studio ครบชุด เป็นชุดเครื่องมือที่ทรงพลังมาก รวมถึงสภาพแวดล้อมการเขียนแบบสอบถาม RapidSQL เครื่องมือการจัดการการเปลี่ยนแปลง DB Change Manager และเครื่องมือเพิ่มประสิทธิภาพการสืบค้น DB Optimizer ช่วยให้คุณสามารถดำเนินการส่วนสำคัญของกระบวนการพัฒนาและปรับใช้ จัดการการเปลี่ยนแปลงใน แบบจำลองข้อมูล ฐานข้อมูล รหัส ฯลฯ นี่เป็นการผสมผสานเทคโนโลยีที่ดีและถูกต้อง

DI.:แต่ถ้าจำเป็น นักพัฒนาสามารถใช้ Subversion เพื่อควบคุมเวอร์ชันได้ รหัสแหล่งที่มาและ DB Change Manager สำหรับการกำหนดเวอร์ชันข้อมูลเมตา คุณสามารถใช้การทำโปรไฟล์โค้ดและ DB Optimizer เพื่อเพิ่มประสิทธิภาพโค้ดเซิร์ฟเวอร์, RapidSQL เพื่อสร้างและดีบักโค้ดเซิร์ฟเวอร์ และสภาพแวดล้อมการพัฒนาของเราเพื่อสร้างและดีบักแอปพลิเคชัน การรวมกันของเทคโนโลยีใน RAD Studio XE อัลติเมทอิดิชั่นแสดงให้เห็นถึงความคล้ายคลึงกันระหว่างรูปแบบการพัฒนาฐานข้อมูลและแอปพลิเคชัน นักพัฒนาส่วนใหญ่สร้างแอปพลิเคชันธุรกิจด้วย Delphi และ C++ Builder ทำงานกับฐานข้อมูลและต้องการเครื่องมือเหล่านี้ และ RAD Studio XE Ultimate Edition คือส่วนผสมที่ยอดเยี่ยมสำหรับนักพัฒนาเหล่านั้น

เคพี:ผู้ใช้ยุคใหม่ไม่ได้เป็นผู้ใช้แพลตฟอร์ม Windows เพียงอย่างเดียวอีกต่อไป เราใช้อุปกรณ์มือถือ iPhone iPad อุปกรณ์ที่ใช้แพลตฟอร์ม Android ซึ่งหมายความว่านักพัฒนาควรเริ่มกำหนดเป้าหมายแพลตฟอร์มต่างๆ โดยไม่ต้องเพิ่มการลงทุนด้านการฝึกอบรมมากนัก นั่นคือจำเป็นต้องใช้เครื่องมือสากล เห็นได้ชัดว่าไม่สมจริงที่จะคาดหวังให้ผู้ผลิตแพลตฟอร์มมีเครื่องมืออเนกประสงค์ปรากฏขึ้น และในกรณีนี้ เราสามารถพึ่งพาผู้ผลิตเครื่องมืออิสระเท่านั้น เราจะพึ่งพาเอ็มบาร์คาเดโรได้ที่ไหน?

DI.:เรายังต้องทำอีกมากในส่วนของการสนับสนุนแพลตฟอร์ม วันนี้เราขอนำเสนอการสนับสนุนสำหรับ แพลตฟอร์ม iOSสำหรับ iPhone และ iPad จากนั้นสมาร์ทโฟน Android, Windows 7 และ Blackberry จะได้รับการสนับสนุนจากเรา ใน RAD Studio XE 2 เราเริ่มต้นด้วยการสร้างแพลตฟอร์ม FireMonkey สำหรับ iOS และต่อมาจะพอร์ต FireMonkey ไปยังแพลตฟอร์มอื่นๆ

ในขณะเดียวกันก็มีระบบปฏิบัติการที่รองรับอยู่เป็นจำนวนมาก หน้าจอสัมผัส(หน้าจอสัมผัส), สำหรับโทรศัพท์, คอมพิวเตอร์แท็บเล็ตและอุปกรณ์ เดสก์ท็อป และเราจะเพิ่มการสนับสนุนสำหรับพวกเขาต่อไป นอกจากนี้ยังมีระบบควบคุมด้วยเสียง, ระบบควบคุมการเคลื่อนไหว, ระบบไบโอเมตริกซ์, มาตรความเร่ง ดังนั้นเราต้องขยาย FireMonkey ต่อไปเพื่อให้นักพัฒนาทุกคนสามารถใช้ประโยชน์จากแพลตฟอร์มใหม่ได้ ตัวอย่างเช่น อุปกรณ์ Microsoft Kinect ได้รับการออกแบบมาสำหรับ Xbox 360 และขณะนี้มี SDK (ชุดพัฒนาซอฟต์แวร์) สำหรับ Windows ที่เกี่ยวข้อง และเรามีตัวอย่างอยู่แล้วที่เราใช้การเคลื่อนไหวเพื่อควบคุมแอปพลิเคชันในลักษณะเดียวกับที่เราใช้เมาส์หรือแป้นพิมพ์ตามปกติ

เมื่อคุณสร้างแอปพลิเคชันที่มีกราฟิกที่ซับซ้อนจำนวนมาก คุณจะสร้างโลกทั้งใบของอินเทอร์เฟซผู้ใช้ใหม่ หากเรากำลังจัดการกับระบบปฏิบัติการ Windows เราจะสรุป Windows API ของมันในไลบรารี VCL (Visual Component Library - ไลบรารีองค์ประกอบภาพที่เป็นส่วนสำคัญของเครื่องมือพัฒนา Delphi และ C ++ Builder - บันทึก. เอ็ด) ซึ่งสามารถนำไปประยุกต์ใช้ต่อไปได้ และใน FireMonkey เราสรุป API ของระบบปฏิบัติการ แต่ทุกวันนี้ เราปรับเปลี่ยนรูปแบบและกราฟิกอย่างกว้างขวางมากขึ้น คุณยังสามารถเพิ่มคุณสมบัติพื้นที่ทางกายภาพสำหรับภาพเคลื่อนไหวและเอฟเฟ็กต์พิเศษได้อีกด้วย นอกจากนี้ยังมีอีกมากมาย คุณลักษณะเพิ่มเติมเพื่อสร้างอินเทอร์เฟซผู้ใช้ที่เรากำลังจะนำไปใช้ในอีกไม่กี่ปีข้างหน้าสำหรับแพลตฟอร์ม อุปกรณ์เคลื่อนที่และแท็บเล็ตต่างๆ

Microsoft เพิ่งเปิดตัวรายละเอียดเกี่ยวกับ Windows 8 ซึ่งมีกำหนดออกในหนึ่งปี เราจะสนับสนุนนวัตกรรมเหล่านี้ในไลบรารี VCL และในแพลตฟอร์ม FireMonkey แต่ Delphi เป็นเครื่องมือการพัฒนาที่ไม่เพียงออกแบบมาสำหรับ Windows เท่านั้น แต่ยังรวมถึง Macintosh, iPhone และ iPad ด้วย เรายังพัฒนาผลิตภัณฑ์ของเราสำหรับ PHP, รองรับ jQuery Mobile, ใช้ซอฟต์แวร์แอปพลิเคชัน อินเทอร์เฟซ iOSเพื่อพัฒนาแอปพลิเคชันไคลเอนต์มือถือและสร้างแอปพลิเคชัน PHP ฝั่งเซิร์ฟเวอร์โดยใช้วิซาร์ดและเครื่องมือเพื่อสร้างโค้ด JavaScript และ HTML ฝั่งไคลเอ็นต์และสไตล์ชีตแบบเรียงซ้อน เราสามารถจัดแพ็กเกจแอปพลิเคชัน PHP และแอปพลิเคชันไคลเอนต์ด้วยรหัสเนทีฟสำหรับ ไอโฟน ไอโอเอสในขณะที่ไคลเอนต์ดังกล่าวจะสื่อสารกับเซิร์ฟเวอร์ PHP และในทางกลับกันจะสื่อสารกับเซิร์ฟเวอร์ฐานข้อมูลและบริการเว็บ - ด้วยทุกสิ่งที่จำเป็นสำหรับธุรกิจ

สภาพแวดล้อมการพัฒนา RadPHP XE2 สร้างเว็บแอปพลิเคชันบนมือถือ
ใช้ส่วนประกอบ jQuery Mobile สำหรับ iPhone 3G

เราวางแผนที่จะขยายขีดความสามารถของ FireMonkey และ VCL รวมถึงการสนับสนุนสำหรับแพลตฟอร์มมือถือ

เคพี:คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับแพลตฟอร์ม FireMonkey ได้ไหม

DI.:อย่างที่ฉันได้กล่าวไปแล้ว ไลบรารี VCL ที่สร้างขึ้นสำหรับ Windows จะยังคงพัฒนาและปรับปรุงต่อไป แต่วันนี้ถ้าคุณต้องการพัฒนาแอปพลิเคชันทางธุรกิจจริงๆ คุณต้องสร้างแอปพลิเคชันสำหรับแพลตฟอร์มต่างๆ นี่คือสิ่งที่แพลตฟอร์ม FireMonkey ได้รับการออกแบบมา รองรับการสร้างอินเทอร์เฟซผู้ใช้ที่มีความละเอียดสูง กราฟิก 3D ประสิทธิภาพสูง อัตราเฟรมสูง และที่สำคัญที่สุดคือใช้ GPU ในการทำสิ่งนี้

คุณสามารถใช้คุณสมบัติเหล่านี้เมื่อสร้างแอปพลิเคชันทางวิทยาศาสตร์ วิศวกรรม และธุรกิจ แอปพลิเคชันดังกล่าวสามารถเชื่อมต่อกับฐานข้อมูลโดยใช้เทคโนโลยี dbExpress โดยยังคงใช้ส่วนประกอบที่ไม่ใช่ภาพที่นักพัฒนาคุ้นเคย เช่น ClientDataSet หรือ DataSource ใช้เทคโนโลยี DataSnap เชื่อมต่อกับฐานข้อมูลใดๆ เซิร์ฟเวอร์ SOAP และ REST คุณสามารถสร้างตัวควบคุมที่น่าดึงดูดใจ ปุ่มที่มีกล่อง ตารางที่ผิดปกติ และองค์ประกอบอินเทอร์เฟซอื่นๆ และในรูปแบบสองและสามมิติ คุณสามารถโหลดโมเดล 3 มิติสำเร็จรูปลงในแอปพลิเคชันและรวมเข้ากับรูปร่าง 2 มิติ ซึ่งสามารถหมุนและดูจากมุมต่างๆ ได้ คุณสามารถสร้างลูกบาศก์ข้อมูลหรือแผนภูมิธุรกิจ 3 มิติและหมุนโดยใช้เมาส์ แป้นพิมพ์ หรือแม้แต่อุปกรณ์ Kinect หรือคุณสามารถเข้าไปในลูกบาศก์และดูพื้นผิวต่างๆ จากด้านในได้ และทั้งหมดนี้สามารถทำได้ด้วย GPU ความเร็วสูง แอปพลิเคชันเดียวกันสามารถคอมไพล์สำหรับแพลตฟอร์มอื่นได้ เช่น Mac OS

แอปพลิเคชันที่มีลูกบาศก์หมุนพร้อมข้อมูล
วางไว้บนขอบของมัน

หรือคุณสามารถสร้างรูปร่าง 3 มิติตั้งแต่เริ่มต้นและใช้กล้องและไฟเพื่อให้แสงสว่างและหมุนส่วนต่างๆ ของอินเทอร์เฟซผู้ใช้ ตัวออกแบบฟอร์มมีสภาพแวดล้อมที่มีอยู่แล้วภายในเพื่อรองรับส่วนติดต่อผู้ใช้ 3 มิติโดยตรงในขณะออกแบบ

บน Windows คุณสามารถใช้ไลบรารี Direct2D สำหรับกราฟิก 2 มิติความละเอียดสูง และ Direct3D สำหรับกราฟิก 3 มิติ Mac OS ใช้ไลบรารี่ของ Quartz และ OpenGL เพื่อจุดประสงค์เดียวกัน สำหรับ iOS จะใช้ไลบรารี่ของ Quartz และ OpenGL ES แต่ทั้งหมดนี้ถูกซ่อนไว้จากนักพัฒนา - เขาใช้แพลตฟอร์ม FireMonkey ระบบพิกัดและอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันโดยไม่ต้องคำนึงถึงไลบรารีเหล่านี้และสามารถรวบรวมแอปพลิเคชันเดียวกันสำหรับแพลตฟอร์มต่างๆ

มาจำกันว่า VCL คืออะไร VCL เป็นส่วนประกอบ "wrapper" รอบ Windows API เรากำลังจัดการกับทรัพยากร เมนู กล่องโต้ตอบ สี สไตล์ ข้อความของวินโดวส์. FireMonkey เป็น wrapper แบบหลายแพลตฟอร์มซึ่งแตกต่างจาก VCL โดยรักษารูปแบบเหตุการณ์และส่วนประกอบเดียวกัน ช่วยให้คุณคิดในแง่ของเหตุการณ์ (เช่น เหตุการณ์ OnClick, OnHasFocus, onMouseDown และ onKeyDown) แต่จัดการเหตุการณ์ Macintosh หรือ iPhone

แพลตฟอร์ม FireMonkey ยังมาพร้อมกับ ระบบที่สมบูรณ์ภาพเคลื่อนไหวขององค์ประกอบส่วนติดต่อผู้ใช้ แน่นอนว่าไม่ใช่ระบบแอนิเมชั่นแบบ Pixar ที่ครอบคลุม แต่อนุญาตให้คุณใช้เอฟเฟ็กต์เช่นแอนิเมชั่น บิตแมปการเน้นจุดโฟกัสขององค์ประกอบอินเทอร์เฟซผู้ใช้ และการทำงานกับกราฟิกแบบเวกเตอร์ นักพัฒนาสามารถเข้าถึงได้มากกว่า 50 ผลภาพ: เบลอ, ขาวดำ, ละลาย, การเปลี่ยนภาพ, การสะท้อน, เงา - เอฟเฟกต์ทุกประเภทที่มีอยู่ในโปรเซสเซอร์กราฟิกสมัยใหม่ซึ่งพบได้ในคอมพิวเตอร์เกือบทุกเครื่อง แอปพลิเคชันที่สร้างขึ้นโดยใช้แพลตฟอร์ม FireMonkey จะส่งคำสั่งไปยัง GPU ซึ่งทำงานทั้งหมดในการแสดงกราฟิกและสร้างอินเทอร์เฟซผู้ใช้ ในนั้น ซีพียูฟรีสำหรับการคำนวณและการเรียกใช้ระบบปฏิบัติการ นักพัฒนาเพียงแค่ต้องวางส่วนประกอบให้ถูกต้องเท่านั้น

สิ่งพื้นฐานที่สุดเกี่ยวกับแพลตฟอร์ม FireMonkey คือวิธีการสร้างอินเทอร์เฟซผู้ใช้ มีสิ่งอำนวยความสะดวกสำหรับการวางกราฟิกบิตแมปบนองค์ประกอบอินเทอร์เฟซ เช่น เมนู ปุ่ม และแถบเลื่อน ใน FireMonkey เราใช้กราฟิกแบบเวกเตอร์ GPU เพื่อจุดประสงค์นี้ จากมุมมองของการเขียนโปรแกรม การควบคุมเหล่านี้ทั้งหมดเหมือนกัน แต่ตัวประมวลผลกราฟิกทำงานทั้งหมดเพื่อแสดงผล เราสามารถใช้สไตล์กับตัวควบคุม ทำให้แอปพลิเคชันดูเหมือนแอปพลิเคชันสำหรับ Mac OS หรือ Windows สร้างสไตล์ของเราเอง ใช้สไตล์ของเรากับองค์ประกอบอินเทอร์เฟซ (เช่น สร้างปุ่มสี่เหลี่ยมหรือกลมโดยเปลี่ยนสไตล์ในเครื่องมือแก้ไขฟอร์ม) - สำหรับสิ่งนี้ สภาพแวดล้อมการพัฒนามีตัวแก้ไขสไตล์ คุณสามารถสร้างสไตล์ของคุณเองหรือเปลี่ยนสไตล์ของแอปพลิเคชันที่สร้างเสร็จแล้วก็ได้

แพลตฟอร์ม FireMonkey - เครื่องมือพัฒนา
และแพลตฟอร์มที่รองรับ

หากคุณจำได้ว่าในไลบรารี VCL มีการควบคุมจำนวนจำกัด - คอนเทนเนอร์ (นั่นคืออนุญาตให้คุณวางองค์ประกอบอื่น ๆ ในพวกมัน) และใน FireMonkey การควบคุมแต่ละรายการจะเป็นคอนเทนเนอร์ ซึ่งหมายความว่าทุกการควบคุมสามารถมีการควบคุมอื่นๆ ได้ ตัวอย่างเช่น รายการแบบเลื่อนลงสามารถมีรูปภาพ ปุ่ม กล่องแก้ไข และตัวควบคุมอื่นๆ และคุณยังสามารถวางส่วนประกอบบนเลเยอร์ได้อีกด้วย

ระบบการเรนเดอร์ FireMonkey ค่อนข้างยืดหยุ่น - สามารถใช้ไลบรารี Direct2D, Direct3D และ OpenGL โดยส่งคำสั่งไปยัง GPU เพื่อให้บรรลุสิ่งเดียวกันใน VCL จำเป็นต้องสร้างบัฟเฟอร์นอกหน้าจอแยกต่างหาก สร้างภาพในนั้นโดยเรียกฟังก์ชันไลบรารีกราฟิกที่เหมาะสม จากนั้นแสดงบนแบบฟอร์ม

ตัวอย่างเอฟเฟกต์กราฟิกที่รองรับโดย FireMonkey

หากคุณไม่มี GPU คุณยังคงใช้รูปร่าง 2 มิติหรือ 3 มิติและใช้ตัวควบคุม FireMonkey ได้ ในกรณีนี้ แพลตฟอร์ม FireMonkey จะใช้ไลบรารี GDI+ หรือไลบรารีอื่นๆ ที่คล้ายคลึงกัน และดำเนินการเอฟเฟ็กต์และแอนิเมชันหรือการจัดการวัตถุ 3 มิติแบบเดียวกัน

คุณลักษณะอื่นของ FireMonkey คือ ระบบใหม่เชื่อมโยงองค์ประกอบส่วนต่อประสานกับข้อมูล เปิดกว้างและยืดหยุ่น มีองค์ประกอบอินเทอร์เฟซสองประเภทใน VCL: data-bound และ non-data-bound (เช่น TDBEdit และ TEdit) ใน FireMonkey การควบคุมทุกอย่างสามารถเชื่อมโยงกับข้อมูลประเภทใดก็ได้ อาจเป็นเพียงนิพจน์ ฟิลด์จากชุดข้อมูล ข้อมูลจากอ็อบเจ็กต์ที่นักพัฒนาสร้างขึ้น หรือผลลัพธ์ของการเรียกใช้เมธอด

นอกจากนี้ เมื่อสร้างแอปพลิเคชัน คุณสามารถโหลดโมเดล 3 มิติสำเร็จรูปและใช้งานได้ - ความสามารถดังกล่าวมักจำเป็นในแอปพลิเคชันทางธุรกิจและวิศวกรรม เรามีลูกค้าที่สร้างแอปพลิเคชันสำหรับลอจิสติกส์ พวกเขามีระบบข้อมูลที่สร้างขึ้นด้วย Delphi และในนั้นมีแอปพลิเคชันที่วาดแผนและแสดงข้อมูลจากแหล่งข้อมูล เมื่อเร็ว ๆ นี้พวกเขาทำสิ่งที่น่าสนใจ - พวกเขาวาดคลังสินค้า 3 มิติอัตโนมัติเต็มรูปแบบใน AutoCAD และแอปพลิเคชันของพวกเขาช่วยให้คุณเห็นว่าตัวโหลดอัตโนมัติเคลื่อนผ่านคลังสินค้าและวางสินค้าบนชั้นวางอย่างไร และจัดวางข้อมูลจากแหล่งที่มาบนรูปภาพที่เกี่ยวข้อง

ตัวอย่างการเปลี่ยนรูปแบบการใช้งาน

เคพี:ปัจจุบันรองรับรูปแบบโมเดล 3 มิติใดบ้าง

DI.:ในรุ่นนี้ เรารองรับการโหลดโมเดลจาก AutoCAD, Collada (tool การสร้างแบบจำลอง 3 มิติด้วยโอเพ่นซอร์ส - บันทึก. เอ็ด.), Maya ซึ่งเป็นรูปแบบ OBJ ที่ผู้จำหน่ายกราฟิก 3D หลายรายสนับสนุน

เคพี:มีแผนจะเพิ่มรูปแบบใดอีกบ้าง

DI.:เราวางแผนที่จะเพิ่ม 3DS (3D Studio MAX), SVG (โดยปกติรูปแบบนี้ใช้สำหรับกราฟิกแบบเวกเตอร์ 2 มิติ แต่บางครั้งสำหรับ 3 มิติ), Google SketchUp เราอาจรองรับรูปแบบอื่นๆ ด้วย

เคพี:การใช้โมเดล 3 มิติในแอปพลิเคชันที่สร้างด้วย FireMonkey จำเป็นต้องมีใบอนุญาตสำหรับเครื่องมือสร้างโมเดล 3 มิติที่เหมาะสมหรือไม่

DI.:ไม่มันไม่ สิ่งที่เราทำคืออ่านไฟล์โมเดล เรากำลังนำเข้าโมเดลแต่ไม่ได้ส่งออก (แต่แน่นอนว่าคุณสามารถเขียนแอปพลิเคชันที่บันทึกโมเดลในรูปแบบของคุณเองได้) เราไม่อ้างว่าเป็นผู้ผลิตเครื่องมือสร้างโมเดล 3 มิติ - สำหรับสิ่งนี้ คุณสามารถใช้ AutoCAD, 3D Studio Max, Maya หรือเครื่องมือสร้างโมเดล 3 มิติอื่นๆ และนำเข้าโมเดลที่สร้างขึ้นในแอปพลิเคชันของเรา

เคพี:แอปพลิเคชันที่สร้างขึ้นด้วย FireMonkey บนแพลตฟอร์มฮาร์ดแวร์สมัยใหม่มีประสิทธิภาพเพียงใด

DI.:ประสิทธิภาพค่อนข้างสูง ตัวอย่างเช่น รูปทรง 3 มิติที่มีทรงกลมสามลูกและไฟสามดวงสามารถแสดงผลได้ที่ 100 เฟรมต่อวินาทีบน MacBook Pro และสามารถเข้าถึง 600 - ขึ้นอยู่กับว่าเรากำลังทำอะไรอยู่ ทุกอย่างขึ้นอยู่กับพลังของ GPU

เคพี:นี่หมายความว่าด้วยความช่วยเหลือของ FireMonkey คุณสามารถสร้างเกมที่ตรงตามข้อกำหนดสมัยใหม่ได้หรือไม่?

DI.:เราไม่ได้วางตำแหน่งเครื่องมือการพัฒนาของเราเป็นเครื่องมือสำหรับเกม อย่างไรก็ตาม เมื่อใช้ประสิทธิภาพสูงของ GPU สมัยใหม่ คุณก็สามารถสร้างเกมด้วย FireMonkey ได้เช่นกัน อย่างไรก็ตาม เกมเหล่านี้สร้างโดยใช้ Direct3D หรือ OpenGL

เคพี:ตอนนี้คุณกำลังทำงานอะไรในด้านการสนับสนุนการจดจำท่าทางและสิ่งใหม่ ๆ อื่น ๆ ? มีการสนับสนุนดังกล่าวหรือไม่?

DI.:เรายังไม่รองรับรูปแบบลายเส้นในรุ่นนี้ การควบคุมด้วยท่าทางจะถูกเพิ่มใน FireMonkey รุ่นต่อๆ ไป แต่สำหรับตอนนี้ คุณสามารถใช้การสนับสนุนด้วยท่าทางที่มีอยู่ในระบบปฏิบัติการได้

มิคาอิล ฟิลิปเปนโก ผู้อำนวยการ Fast Reports, Inc.

K.R.:เราได้กล่าวไปแล้วว่าเทคโนโลยี FireMonkey มีรากฐานมาจากรัสเซีย - รากฐานของมันถูกสร้างขึ้นในประเทศของเรา จากนั้นตัวเทคโนโลยีเองและนักพัฒนาก็รวมเข้ากับ Embarcadero โดยทั่วไปแล้ว เป็นเรื่องน่ายินดีที่ได้เห็นการเติบโตของส่วนประกอบของรัสเซียใน RAD Studio และ Delphi นี่คือกิจกรรมของศูนย์พัฒนาของเราในเซนต์ปีเตอร์สเบิร์ก และการสนับสนุนของนักพัฒนาอิสระชาวรัสเซีย ตัวอย่างเช่น Rad Studio XE2 มีเครื่องมือสร้างรายงาน FastReport ซึ่งเป็นที่รู้จักทั่วโลกและเป็นที่นิยมมากในประเทศของเรา เขามาจาก Rostov-on-Don

เคพี:ฉันต้องการพูดคุยเกี่ยวกับคอมไพเลอร์ คอมไพเลอร์ใดที่ใช้สร้างแอป iOS

DI.:เราไม่มีคอมไพเลอร์ Delphi สำหรับ iPhone หรือ iPad - เรายังไม่ได้พัฒนาคอมไพเลอร์สำหรับโปรเซสเซอร์ ARM ที่ใช้ในอุปกรณ์เหล่านี้ สำหรับ iOS เราใช้ Free Pascal compiler และ runtime library ชั่วคราว แต่เรากำลังทำงานกับคอมไพเลอร์รุ่นต่อไป รวมถึงคอมไพเลอร์สำหรับโปรเซสเซอร์ ARM แต่มีคอมไพเลอร์สำหรับ Windows และ Mac OS เนื่องจากแพลตฟอร์มฮาร์ดแวร์ทั้งสองใช้โปรเซสเซอร์ Intel

เคพี:และสิ่งที่ได้ทำในด้านการพัฒนาคอมไพเลอร์ในช่วงสองปีที่ผ่านมา?

DI.:เรามีคอมไพเลอร์ Delphi 32 และ 64 บิตสำหรับ Windows และ Mac OS และเรากำลังทำงานกับคอมไพเลอร์ Delphi และ C++ รุ่นใหม่ การทำงานกับพวกเขายังคงดำเนินต่อไป แต่เมื่อเสร็จสิ้นเราจะมีคอมไพเลอร์ Delphi สำหรับโปรเซสเซอร์ ARM แพลตฟอร์ม Android, Linux และอะไรก็ตาม และเราจะมีคอมไพเลอร์ C++ แบบ 64 บิตสำหรับ Windows และแพลตฟอร์มอื่นๆ ที่เข้ากันได้กับมาตรฐานภาษา C++ ล่าสุดที่เพิ่งนำมาใช้โดย ISO

เคพี:เกิดอะไรขึ้นกับการรองรับคลาวด์คอมพิวติ้งในเครื่องมือพัฒนา Embarcadero ในปัจจุบัน

DI.:ด้วย RAD Studio XE 2 เรารองรับการย้ายแอปพลิเคชันไปยัง Microsoft Azure หรือ Amazon EC2 cloud โดยใช้ Platform Assistant และเรามีส่วนประกอบเซิร์ฟเวอร์สำหรับ Cloud Storage สำหรับ Azure และ Amazon S3 สำหรับจัดเก็บตาราง ข้อมูลไบนารี คิวข้อความ ใน รุ่นก่อนหน้าใน RAD Studio XE เรายังรองรับการปรับใช้แอปพลิเคชันกับ Amazon EC2 แต่ไม่มีการรองรับพื้นที่เก็บข้อมูล

รองรับการประมวลผลแบบคลาวด์ใน RAD Studio XE 2

เคพี:เมื่อสองปีก่อนคุณพูดถึงโซลูชัน All-Access ใหม่ เป็นที่ต้องการมากแค่ไหน? ประโยชน์ของมันคืออะไร ผู้รวมระบบและนักพัฒนา?

DI.:โซลูชัน All-Access และเครื่องมือระบบคลาวด์ของ AppWave ถูกนำมาใช้อย่างแพร่หลายทั่วโลก ได้รับการออกแบบมาเพื่อให้ใช้งานทั้งแอปพลิเคชันของบริษัทและของบุคคลที่สามได้ง่ายขึ้น ที่จริงแล้ว นี่เป็นโซลูชันสำหรับจัดการใบอนุญาตและแอปพลิเคชัน และสะดวกสำหรับบริษัทขนาดใหญ่ บริษัทขนาดเล็กที่ไม่มีทีมจัดการแอปพลิเคชันเฉพาะสามารถวางแอปพลิเคชันไว้ในที่เก็บข้อมูล ดึงชื่อผู้ใช้จากฐานข้อมูล และตรวจสอบให้แน่ใจว่าแอปพลิเคชันเหล่านั้นถูกใช้โดยไม่ต้องจดจำว่าอยู่ที่ไหน รหัสใบอนุญาตและมีใบอนุญาตจำนวนเท่าใด เบราว์เซอร์ All-Access และ AppWave ออกแบบมาเพื่อจัดการทั้งการกำหนดเวอร์ชันและการควบคุมการเข้าถึง

K.R.:ตลาดมีความหลากหลายมาก และผู้ใช้ก็แตกต่างกันมาก ซึ่งเป็นไปไม่ได้ที่จะครอบคลุมทุกความต้องการด้วยโซลูชันเดียว ดังนั้นเราจึงมุ่งมั่นในการแก้ปัญหา "บรรจุภัณฑ์" ที่หลากหลาย เราได้ทำงานหลายอย่างเพื่อรวมการให้สิทธิ์การใช้งาน การจัดการสิทธิ์การใช้งาน และการติดตั้งผลิตภัณฑ์ กลุ่มโซลูชันนี้รวมถึงใบอนุญาตและเครื่องมือการจัดการการเข้าถึง ไม่เพียงแต่สำหรับผลิตภัณฑ์ของ Embarcadero แต่สำหรับผลิตภัณฑ์อื่นๆ รวมถึงการพัฒนาภายในของบริษัทต่างๆ

งานของการรวมเครื่องมือการพัฒนาเข้ากับชุดผู้ใช้ที่มีประสิทธิภาพยังคงดำเนินต่อไป เรามี All-Access - superset ที่รวมผลิตภัณฑ์ Embarcadero ทั้งหมด หากลูกค้าซื้อรุ่น All-Access Platinum เขาจะได้รับเครื่องมือทั้งหมดที่อยู่ใน Embarcadero แต่บางครั้งชุดนี้กลับซ้ำซ้อน ตัวอย่างเช่น เราสร้างอีกสองชุดสำหรับผู้เชี่ยวชาญด้านฐานข้อมูล - DB Power Studio Developer Edition และ DB Power Studio DBA Edition ความแตกต่างระหว่างสองสิ่งนี้คือสำหรับนักพัฒนา เรานำเสนอ RapidSQL ซึ่งเป็นเครื่องมือพัฒนาโค้ดเซิร์ฟเวอร์ และสำหรับผู้ดูแลระบบ DBArtizan ซึ่งเป็นเครื่องมือการดูแลระบบฐานข้อมูล รวมอยู่ในนั้น ซึ่งเป็นผลิตภัณฑ์ที่กว้างกว่า RapidSQL สำหรับมืออาชีพ เรามีชุด All-Access ต่อไปนี้: ชุดผลิตภัณฑ์ทั้งหมด, DB Power Studio สำหรับนักพัฒนา, DB Power Studio สำหรับผู้ดูแลระบบ, ER Studio Enterprise Edition สำหรับสถาปนิกและใครก็ตามที่เกี่ยวข้องกับการสร้างแบบจำลอง มีชุดค่าผสมสำหรับการพัฒนาแอปพลิเคชันและสำหรับผู้ดูแลระบบ Delphi เป็นเครื่องมือของนักพัฒนาซอฟต์แวร์ และการเพิ่มเครื่องมือพัฒนา SQL และเครื่องมือปรับแต่งให้เหมาะสมก็สมเหตุสมผลดี ประการสุดท้าย DB Change Manager เป็นเครื่องมือที่สมเหตุสมผลสำหรับการจัดการความซับซ้อนของการเปลี่ยนแปลงที่เกิดขึ้นกับฐานข้อมูลในช่วงวงจรชีวิต

ดังนั้น All-Access จึงเป็นหัวหน้าของกลุ่มผลิตภัณฑ์ชุดต่างๆ จำนวนมาก

เคพี:หากไม่เป็นความลับ ใครในรัสเซียใช้ All-Access

K.R.:เรามีลูกค้าที่ซื้อ All-Access จาก Delphi หลายคนสร้างระบบไคลเอนต์เซิร์ฟเวอร์ที่ซับซ้อนด้วย เซิร์ฟเวอร์ SQLและ Oracle และพวกเขาก็ชอบชุดเครื่องมือฐานข้อมูลข้ามแพลตฟอร์มของเราในทันที เรามีบริษัทลูกค้าที่ทำงานกับ Delphi มาตั้งแต่เวอร์ชันแรก และย้ายจาก Delphi เป็น All-Access เมื่อหนึ่งปีที่แล้ว เครื่องมือสองอย่างที่รับประกันว่านักพัฒนาทุกคนในบริษัทนี้จะใช้งานคือ Delphi และ DBArtisan และมีลูกค้าที่มาที่ All-Access จากฝั่งฐานข้อมูล งานหลักของพวกเขาคือการจัดการฐานข้อมูล แต่พวกเขายังพัฒนาแอปพลิเคชันเป็นครั้งคราวด้วย ลูกค้าที่ใช้ All-Access ได้แก่ บริษัทสื่อ ผู้สร้างเครื่องจักร และอุตสาหกรรมอื่นๆ

แยกกันฉันต้องการที่จะอยู่ใน บริษัท ขนาดเล็ก บ่อยครั้งในทีมเล็กๆ นักพัฒนาจะทำทุกอย่าง และบางครั้งบริษัทดังกล่าวก็ซื้อแพ็คเกจอาหาร All-Access ขนาดใหญ่สำหรับนักพัฒนาหนึ่งหรือสองคน ในทีมขนาดใหญ่ ไม่สนับสนุนให้นักพัฒนาดำเนินการด้วย ตัวอย่างเช่น บทบาทของผู้ดูแลระบบฐานข้อมูล ดังนั้น แพ็คเกจอาหารขนาดเล็กจึงเป็นที่นิยมที่นั่น และใน บริษัทขนาดเล็กการผสมผสานของหน้าที่ดังกล่าวค่อนข้างเป็นที่ยอมรับ

Delphi Architect เป็นผลิตภัณฑ์ที่มีการวางตลาดสูงซึ่งรวมถึงเครื่องมือสร้างแบบจำลองและการเขียนโปรแกรม จำนวนสำเนาที่ขายได้น้อยกว่ารุ่น Delphi Enterprise แต่ก็มีขนาดใหญ่เช่นกัน ฉันทราบว่าในปี 2010 เราเป็นประเทศที่ดีที่สุดในแง่ของยอดขาย แม้ว่าทุกประเทศจะรอดพ้นจากวิกฤตก็ตาม การเติบโตนี้ไม่ได้เกิดจากปัจจัยทางเศรษฐกิจมากนัก เนื่องจากเวอร์ชันของ RAD Studio XE ซึ่งเปิดตัวเมื่อปลายปี 2552 กลายเป็นที่ต้องการอย่างมาก และในขณะที่เราคาดว่ายอดขายจะเติบโตต่อไป

เราได้ก้าวไปอีกขั้นที่สมเหตุสมผลซึ่งเป็นที่ต้องการอย่างมากในรัสเซีย ระดับของกฎหมาย รุ่นต่างๆผลิตภัณฑ์ของเราแตกต่าง: ยิ่งเวอร์ชันสูง ยิ่งถูกกฎหมาย เพราะก่อนหน้านี้ ซอฟต์แวร์ไม่ได้ซื้ออย่างจริงจัง เริ่มต้นด้วย RAD Studio XE ใบอนุญาตครอบคลุมเวอร์ชัน 2010, 2009, 2007 และแม้แต่ Delphi 7 ซึ่งเป็นผลิตภัณฑ์ที่ใช้กันอย่างแพร่หลาย

วันนี้นักพัฒนาต้องเผชิญกับความจริงที่ว่าพวกเขามีทั้งโครงการใหม่และโครงการในสถานะที่รองรับ มีการย้ายโครงการจำนวนมากจาก Delphi เวอร์ชันก่อนหน้าเป็นเวอร์ชัน 7 และยังคงอยู่ในเวอร์ชันนี้ โดยยังคงทำงานบนทรัพยากรที่มีขนาดค่อนข้างเล็กต่อไป ไม่มีใครย้ายไปยังเวอร์ชันที่ใหม่กว่า แต่ยังคงใช้งานได้ และตอนนี้เรายอมให้เงินเพียงเล็กน้อย (น้อยกว่าราคาใบอนุญาต Delphi 7) เพื่อรับทั้ง RAD Studio XE และ Delphi 7 นั่นคือเราทำให้นักพัฒนาถูกต้องตามกฎหมายทั้งสำหรับการดำเนินโครงการใหม่และสำหรับโครงการสนับสนุน

เคพี:คุณประเมินสถานะปัจจุบันของชุมชน Embarcadero อย่างไร

DI.:ชุมชนนี้มีขนาดใหญ่และมีความต้องการมาก พวกเขาต้องการทุกอย่างในทันที - พวกเขาเป็นนักพัฒนา แต่บางครั้งก็ใช้เวลานานเพื่อให้ได้สิ่งที่ถูกต้อง

ไม่กี่ปีที่ผ่านมา เราได้นำสถาปัตยกรรมคอมโพเนนต์ของ Windows มาวางไว้บนเดสก์ท็อปของ Linux ตอนนี้เราเห็นแล้วว่ามันไม่ใช่การตัดสินใจที่ถูกต้อง การตัดสินใจที่ถูกต้องคือการสร้างแพลตฟอร์มสำหรับแอปพลิเคชัน แอพพลิเคชั่นสำหรับแพลตฟอร์มต่าง ๆ มีเมนู หน้าต่าง กราฟิก การเข้าถึงเครือข่ายและการเข้าถึงอุปกรณ์ อาจมีแพลตฟอร์มที่แตกต่างกัน รุ่นต่างๆการควบคุมการไหลหรือการจัดการข้อยกเว้น แต่ในรหัสแอปพลิเคชันเราจะเห็นบล็อกการลองแบบเดียวกัน งานของเราคือช่วยให้นักพัฒนาสร้างแอปพลิเคชันทางธุรกิจและคอมไพล์แอปพลิเคชันเหล่านั้นสำหรับแพลตฟอร์มที่ควรใช้ได้ง่ายขึ้น โดยไม่คำนึงว่าระบบคำสั่งของโปรเซสเซอร์ที่สอดคล้องกันนั้นถูกจัดเรียงอย่างไร และคุณลักษณะอื่นๆ ของแพลตฟอร์มเหล่านี้เป็นอย่างไร และ FireMonkey คือสิ่งที่คุณต้องการในการแก้ปัญหานี้

เคพี:หากบริษัทสร้างอุปกรณ์ใหม่และต้องการให้ FireMonkey รองรับ จะเป็นไปได้ไหม

DI.:ด้วยคอมไพเลอร์รุ่นใหม่ที่จะมีฟรอนต์เอนด์ที่ไม่ขึ้นกับแพลตฟอร์มและแบ็คเอนด์ที่ขึ้นกับแพลตฟอร์ม สิ่งนี้จะค่อนข้างเป็นไปได้ ในระหว่างนี้ สำหรับแต่ละระบบปฏิบัติการ เราจะสร้างคอมไพเลอร์และไลบรารีรันไทม์ตั้งแต่เริ่มต้น

อุปกรณ์ใหม่ที่ทันสมัยมักมีส่วนต่อประสานกราฟิกกับผู้ใช้ (ส่วนใหญ่มีโปรเซสเซอร์ดูอัลคอร์และ GPU) และ SDK มาตรฐานสำหรับนักพัฒนา ทั้งหมดนี้ช่วยลดความยุ่งยากในการสร้างการสนับสนุนอุปกรณ์ใน FireMonkey หากอุปกรณ์ใหม่มีไลบรารีสำหรับกราฟิก 2D เช่น Quartz เท่านั้น เราจะสามารถรองรับอุปกรณ์ดังกล่าวใน FireMonkey ได้ แต่จะใช้เวลาประมาณหลายเดือน อย่างไรก็ตาม หลายอย่างขึ้นอยู่กับแพลตฟอร์ม: ไม่ใช่ทุกแพลตฟอร์มที่รองรับคุณสมบัติทั้งหมด ตัวอย่างเช่น iOS ไม่มีเมนูและกล่องโต้ตอบ และคุณจะไม่สามารถวางส่วนประกอบที่เกี่ยวข้องในแบบฟอร์มของแอปพลิเคชันดังกล่าวได้

เคพี:มีอะไรเปลี่ยนแปลงในนโยบายการทำงานร่วมกับคู่ค้าหรือไม่? กำลังทำอะไรเพื่อเพิ่มส่วนแบ่งผู้ใช้ผลิตภัณฑ์ของคุณ กำลังทำอะไรในรัสเซีย

DI.:ระบบนิเวศของพันธมิตรของเรากว้างขวาง มีผู้ผลิตเครื่องมือและส่วนประกอบหลายร้อยรายที่ไม่พบในผลิตภัณฑ์ของเรา และเรามีโปรแกรมความร่วมมือด้านเทคโนโลยี ดังนั้น นักพัฒนาจึงมีส่วนประกอบ เทคโนโลยี และเครื่องมือที่หลากหลาย และโซลูชันที่พวกเขาสร้างขึ้นสำหรับลูกค้านั้นดีกว่าการใช้ผลิตภัณฑ์ของเราเพียงอย่างเดียว และสำหรับการขาย เรามีสำนักงานในหลายประเทศ ตัวแทนจำหน่ายและผู้จัดจำหน่าย

K.R.:สิ่งที่สำคัญสำหรับเราไม่ใช่จำนวนพาร์ทเนอร์ แต่เป็นคุณภาพของงานของพาร์ทเนอร์แต่ละราย สำหรับตอนนี้ เราต้องการมุ่งเน้นไปที่การทำงานอย่างใกล้ชิดกับพันธมิตรที่มีอยู่ แม้ว่ากลุ่มพันธมิตรจะยังคงเปิดอยู่ เรามีพันธมิตรมากมายและเราต้องช่วยเหลือเขาในด้านเทคโนโลยี เราทำงานร่วมกับนักพัฒนา และพวกเขารู้ว่าพวกเขาต้องการอะไรและรู้ว่าอะไรมีอยู่ในตลาด และความสามารถของพันธมิตรต้องตรงกับสิ่งนี้

เรามีพันธมิตรทางธุรกิจที่ลงทุนมหาศาลใน Embarcadero ในฐานะสายธุรกิจ - พวกเขามีผู้เชี่ยวชาญที่ผ่านการฝึกอบรม การตลาดของผลิตภัณฑ์ของเรา พนักงานที่ทุ่มเทซึ่งรับผิดชอบด้านนี้และติดตามสิ่งที่เกิดขึ้นกับผลิตภัณฑ์ รายการราคา และการตลาดของเรา โดยธรรมชาติแล้ว พวกเขาประสบความสำเร็จในแง่ของการขายผลิตภัณฑ์ของเรามากกว่าบริษัทที่ขายผลิตภัณฑ์ของเราเป็นรายกรณี

เคพี: David, Kirill ขอบคุณมากสำหรับบทสัมภาษณ์ที่น่าสนใจ ในนามของสิ่งพิมพ์ของเราและผู้อ่านของเรา ฉันขอให้บริษัทของคุณประสบความสำเร็จอย่างต่อเนื่องในการสร้างเครื่องมือที่น่าทึ่งซึ่งนักพัฒนาต้องการอย่างมาก!

คำถามที่ถามโดย Natalia Elmanova

ในบริบทของบล็อกนี้ โครงการนี้มีความน่าสนใจเป็นหลักเนื่องจากใช้งานบน FireMonkey และเป็นการสาธิตความสามารถของแพลตฟอร์มนี้ได้อย่างน่าทึ่ง และเมื่อสัปดาห์ที่แล้ว เบต้าสาธารณะของผลิตภัณฑ์ก็เปิดตัว ดังนั้น ผู้อ่านบล็อกสามารถ "รู้สึก" ได้ถึงความซับซ้อนจริงๆ ลิงไฟแอปพลิเคชัน.

คำสองสามคำเกี่ยวกับโปรแกรม ก่อนอื่น ควรสังเกตว่า Sphere เวอร์ชันปัจจุบันอยู่ในตำแหน่งที่แตกต่างกันเล็กน้อย ใช่ บางครั้งมันก็เกิดขึ้น...

ใหม่ สเฟียร์ไลฟ์นี่ไม่ใช่แค่ผู้ส่งสารรายอื่น ประการแรกคือเครื่องมือที่ช่วยให้คุณสามารถจัดระเบียบกระบวนการศึกษาได้อย่างมีประสิทธิภาพ อนุญาตให้มีการบรรยายทางไกล การให้คำปรึกษาส่วนตัว บทเรียนส่วนตัว และกิจกรรมอื่นๆ ที่คล้ายคลึงกัน ในขณะเดียวกันก็มีเกือบทุกอย่างที่จำเป็นสำหรับการทำงาน เริ่มต้นด้วยระบบการถ่ายโอนไฟล์ที่ไม่เหมือนใครและสิ้นสุดด้วยระบบย่อยการเรียกเก็บเงินที่มีประสิทธิภาพ

ในขั้นตอนนี้ราคาสำหรับการใช้ผลิตภัณฑ์ค่อนข้างเป็นประชาธิปไตย ขึ้นอยู่กับจำนวนผู้ฟังที่จำกัดและทรัพยากรจำนวนเล็กน้อย ผลิตภัณฑ์นี้สามารถใช้งานได้ฟรี

โดยธรรมชาติแล้ว Sphere จะใช้ประโยชน์จากข้อได้เปรียบหลัก ลิงไฟ- ข้ามแพลตฟอร์ม ขณะนี้แอปพลิเคชันพร้อมใช้งานในรุ่น Windows และ MacOS รุ่น Androidคาดว่าในแต่ละวัน

อย่างไรก็ตาม สำหรับฉันแล้ว SphereLive นั้นน่าสนใจ อย่างแรกเลยคือเป็นผลิตภัณฑ์ที่เป็นนวัตกรรมใหม่พร้อมโซลูชันดั้งเดิมที่หลากหลาย บางครั้งก็อยู่ในระดับ "...ว้าว คุณทำอย่างนั้นได้อย่างไร" อย่างไรก็ตาม หนึ่งในผู้พัฒนา Sphere มีส่วนร่วมในการอภิปรายในฟอรัม FireMonkey นี่อาจเป็นโอกาสในการดาวน์โหลดแอปพลิเคชันและพูดคุย คำถามทางเทคนิคกับผู้เขียนโดยตรง เชื่อฉันสิ มีบางอย่างให้ดู มีอะไรให้เรียนรู้

TListViewเป็นหนึ่งในองค์ประกอบหลักสำหรับการสร้างส่วนต่อประสานแอปพลิเคชันมือถือใน ลิงไฟ. คอมโพเนนต์นี้ไม่ใช่วิธีที่ง่ายที่สุดในการใช้งาน มักเกี่ยวข้องกับโค้ดจำนวนมาก แต่ให้อิสระในการดำเนินการอย่างมากแก่นักพัฒนา แน่นอน แอปพลิเคชันยังสามารถใช้ TListBoxที่ทุกอย่างง่ายกว่ามาก แต่ TListBox, อาจจะดีสำหรับการแสดงเรกคอร์ดในจำนวนที่แน่นอน, สำหรับการแสดงข้อมูลจากแหล่งข้อมูล, คุณควรใช้อย่างแน่นอน TListView.

ความแตกต่างที่สำคัญระหว่าง TListView และ TListBox คือ:

  1. TListBoxItem- ควบคุม, TListViewItem- เลขที่
  2. ใน TListBoxItemคุณสามารถเพิ่มการควบคุมโดยใช้ Parent ใน TListVIewItem- เลขที่.
  3. TListVIewItemเก็บเฉพาะการแสดงข้อมูล
  4. TListVIewItemตัวเองทำการเรนเดอร์ข้อมูลที่เก็บไว้ผ่านเมธอด แสดงผล
  5. เนื่องจากการเรนเดอร์ด้วยตนเองจริงใน TListVIewItem ทำให้เพิ่มความเร็วและใช้หน่วยความจำน้อย (จัดเก็บเฉพาะข้อมูลจริงเท่านั้น)
  6. เพื่อสร้างของคุณเอง TListViewItemคุณต้องสร้างคลาสไอเท็มของคุณเอง ใช้ข้อมูลที่จำเป็นในนั้น (เช่น เวลา) และสร้างตัวแก้ไขแบบแทนที่เพื่อแก้ไขเวลา ลงทะเบียน ฯลฯ

โดยตัวของมันเอง ข้อเท็จจริงของการปรับปรุงประสิทธิภาพและการลดการใช้หน่วยความจำเป็นข้อโต้แย้งที่ชัดเจนที่สนับสนุนการใช้ TListView. แต่ยังมีอย่างอื่นอีกด้วย

ในหลาย แอนดรอยด์แอปพลิเคชัน ฉันได้เห็นการใช้งานรายการต่อไปนี้ เมื่อคุณคลิกที่รายการ (รายการ หากคุณใช้คำศัพท์ที่เลือก) การดำเนินการบางอย่างจะดำเนินการ โดยปกติแล้วจะมีการเรียกแบบฟอร์มใหม่เพื่อแก้ไขข้อมูล แต่เมื่อคุณกด (Long Tap) ค้างไว้ การกระทำที่แตกต่างไปจากเดิมอย่างสิ้นเชิง และเหตุการณ์เหล่านี้ไม่ตัดกัน กล่าวอีกนัยหนึ่ง แอปพลิเคชัน Android สามารถแยกความแตกต่างระหว่าง "การกดแบบยาว" และ "แบบปกติ" ได้อย่างชัดเจน ยิ่งไปกว่านั้น เหตุการณ์เหล่านี้จะไม่ถูกเรียกเมื่อรายการถูกเลื่อน ตัวอย่างที่ดีคือรายการจดหมายใน Yandex Mail

ก่อนอื่นฉันขอแสดงความยินดีกับผู้อ่านบล็อกทุกคนในวันหยุดที่ผ่านมาและขอให้คุณโชคดีในปีหน้า

เนื่องจากสถานการณ์ที่เข้าใจได้ ฉันไม่ได้จัดทำรายงานปีใหม่แบบดั้งเดิม รวมทั้งวางแผนสำหรับปี อย่างไรก็ตาม ชีวิตไม่หยุดนิ่ง งานกำลังดำเนินการ และเหตุการณ์บางอย่างในโลกเดลฟีกำลังเกิดขึ้น ฉันตกลงที่จะเผยแพร่ "ข่าวจากโลกของเดลฟี" ที่พลาดไปในช่วงวันหยุดคริสต์มาสในอนาคตอันใกล้นี้ ในระหว่างนี้ ฉันจะบอกคุณเกี่ยวกับอุปกรณ์ใหม่ที่ฉันซื้อ

คุณสามารถค้นหาข้อมูลจำเพาะได้จากเว็บไซต์อย่างเป็นทางการ และความประทับใจส่วนตัวเป็นที่พอใจมาก สิ่งสำคัญคือความจริงที่ว่าอุปกรณ์นั้นอัดแน่นไปด้วยซอฟต์แวร์ที่เป็นกรรมสิทธิ์จากผู้ผลิตอย่างแท้จริง ใช่และผู้ขายได้รับชุดซอฟต์แวร์ที่น่าประทับใจเป็นของขวัญ ในการทำงาน สมาร์ทโฟนนั้นเร็วพอและคุ้มค่ากับราคา (ประมาณ 200 ดอลลาร์) อย่างไรก็ตาม ฉันซื้อโทรศัพท์ GSmart 1362 เครื่องเก่าด้วยเงินเท่าเดิมเมื่อ 2 ปีที่แล้ว แต่อย่างที่คุณคงเดาได้ ความสนใจหลักสำหรับฉันคือวิธีที่ ลิงไฟแอพพลิเคชั่น.

ก่อนไปต่อเรื่องนาฬิกาจับเวลา-สองข่าว.

ขั้นแรก การอัปเดต XE7 แรกได้รับการเผยแพร่แล้ว ตามธรรมเนียมแล้ว มีให้สำหรับผู้ใช้ที่ลงทะเบียน คุณสามารถค้นหารายการข้อบกพร่องที่แก้ไขได้ ฉันต้องการดูว่าแอปพลิเคชันทำงานอย่างไรในสภาพแวดล้อมที่อัปเดต อันที่จริง ไม่จำเป็นต้องทำการแก้ไข แม้ว่าสนามสำหรับการทดลองจะยังคงอยู่

ข่าวที่สอง ข้อเสนอพิเศษของ Embarcadero ขยายไปจนถึงสิ้นปี:

ตอนนี้ตรงไปที่หัวข้อของโพสต์ โดยหลักการแล้ว สิ่งที่เหลืออยู่สำหรับเราคือพยายามเปิดตัวที่สร้างไว้แล้ว แอปพลิเคชั่นนี้ภายใต้ระบบปฏิบัติการแอนดรอยด์ สำหรับสิ่งนี้ เราใช้สิ่งที่ฉันเขียนเกี่ยวกับโพสต์ก่อนหน้านี้ กล่าวคืออันใหม่ ฉันดีบั๊กแอปพลิเคชันนี้บน เน็กซัส 7จึงเพิ่มมุมมองของแท็บเล็ต Android 7″ การออกแบบต้อง "ปรับแต่ง" เพียงเล็กน้อยเท่านั้น

อาจมีเพียงคนขี้เกียจเท่านั้นที่ไม่ได้เขียนตัวจับเวลา และในบริบทของการสนับสนุนการพัฒนาสำหรับแพลตฟอร์มมือถือ งานเขียนตัวจับเวลาใน Delphi โดยทั่วไปอาจถือเป็นงานลัทธิ ดังนั้นฉันคิดว่าทำไมไม่เป็นตัวอย่างของการพัฒนา ลิงไฟแอปพลิเคชันไม่ได้แยกวิเคราะห์ตัวจับเวลา ภายใต้ Android แน่นอน แน่นอนว่านี่จะเป็นมุมมองของฉันเกี่ยวกับงานซึ่งแม้ว่าจะไม่ยากเป็นพิเศษ แต่ก็ยังมีความแตกต่างในตัวเอง บางทีคุณอาจมีความคิดเห็นหรือข้อเสนอแนะ จะเป็นการดีที่จะพูดคุยในความคิดเห็น ฉันไม่เคยเชี่ยวชาญในการเขียน แอปพลิเคชั่นมือถือดังนั้นทุกความคิดเห็นของคุณจะมีค่าสำหรับฉัน

เราจะพัฒนาตัวจับเวลาตามความหมายภาษาอังกฤษของคำนี้ นั่นคือหน้าจอจะแสดงปุ่มหมุนและปุ่มสี่ปุ่ม - "เริ่ม", "หยุดชั่วคราว", "หยุด" และ "ยกเลิก" การนับถอยหลังจะไปข้างหน้า (เช่น เวลาจะเพิ่มขึ้น) ตัวเลือกที่ตั้งเวลาและนับถอยหลังในคำศัพท์ภาษาอังกฤษเรียกว่า Stop Watch บางทีฉันจะลองนำไปใช้ในภายหลัง แอปพลิเคชันที่เราจะจัดการนั้นมีความใกล้เคียงกับนาฬิกาจับเวลามากกว่า

Delphi XE7 ช่วยให้เราลดความซับซ้อนของกระบวนการพัฒนาได้อย่างมาก เนื่องจากตอนนี้เราสามารถสร้างและดีบักแอปพลิเคชันจริงสำหรับ Win32 ได้แล้ว จากนั้นเพียงเพิ่มมุมมองแบบฟอร์มสำหรับอุปกรณ์เคลื่อนที่ที่จำเป็นและด้วยการปรับเปลี่ยนเพียงเล็กน้อย ก็จะได้อุปกรณ์เคลื่อนที่ที่ใช้งานได้ แอปพลิเคชัน. ฟังดูดีเกินจริง? อาจจะ. แต่ฉันต้องการตรวจสอบข้อความนี้ด้วยโดยตระหนักถึงภารกิจ

ยิ่งฉันถามเพื่อนร่วมงานในการสนทนาส่วนตัวบ่อยขึ้นว่าสามารถพัฒนาแอปพลิเคชันมือถือได้หรือไม่ ลิงไฟหรือเป็นต้นแบบมากกว่าโซลูชันการผลิต?

ฉันคิดว่าตอนนี้ฉันมั่นใจได้แม้กระทั่งคนขี้ระแวง

เพื่อนในอกของฉันและเพื่อนร่วมงาน ทากีร์ ยูมากุซิน เล่าให้ฉันฟังเกี่ยวกับโครงการที่เขาเข้าร่วมเมื่อนานมาแล้ว ตอนนี้ เมื่อโครงการนี้อยู่ในสถานะก่อนเผยแพร่ เราตัดสินใจว่าคำอธิบายนี้จะน่าสนใจสำหรับชุมชน Delphi โดยพื้นฐานแล้วนี่เป็นโครงการขนาดใหญ่ที่ดำเนินการใน FM เรากำลังพูดถึงโครงการ Sphere Live บทความเล็ก ๆ ที่อุทิศให้กับโครงการนั้นได้รับการตีพิมพ์เมื่อเร็ว ๆ นี้ใน Habrahabr.ru Alexey Glyzin หัวหน้าฝ่ายพัฒนาของ ‘ ‘ ตกลงที่จะบอกเล่าเพิ่มเติมเกี่ยวกับโครงการโดยคำนึงถึงผู้ชมบล็อกของฉัน

เอบี– โดยทั่วไปแล้ว Alexey โครงการของคุณคืออะไร?

ก.ช.: – ความคิดไม่ได้ปรากฏขึ้นทันทีทันใด ก่อนโครงการ "Sphere" ทีมของเราทำงานในโครงการที่นำเทคโนโลยีเสียง/วิดีโอสตรีมมาใช้ ต่อมาเราได้สร้างซอฟต์แวร์ของเราเองที่สามารถส่งกระแสข้อมูลมัลติมีเดียไปยังผู้ใช้ไม่จำกัดจำนวนรวมถึงข้อเสนอแนะ แต่เราจำเป็นต้องมีฟีเจอร์การเรียกเก็บเงินรวมอยู่ด้วย
แอปพลิเคชันต้องเป็นไปตามข้อกำหนดหลายประการ ประการแรก การจัดระเบียบการประชุมหรือการส่งไปยังผู้เข้าร่วมที่เรียบง่ายที่สุดซึ่งเราไม่สามารถคาดการณ์ได้ ประการที่สอง สิ่งที่สำคัญที่สุดคือการมอบโอกาสให้กับลูกค้าของเราในการสร้างรายได้ด้วยแอปพลิเคชันของเรา และลดความซับซ้อนของระบบ จำนวนเครื่องมือที่ต้องใช้เพื่อให้บรรลุเป้าหมาย ความสะดวกในการจัดระเบียบหลักสูตร การสัมมนาผ่านเว็บ หรือเพียงแค่การให้คำปรึกษา

รอยหน่วยความจำขนาดเล็กเกี่ยวกับ ไฟร์ดีเอซีในเวอร์ชันปัจจุบัน เดลฟี XE6. แต่ก่อนอื่น สองสามคำเกี่ยวกับตำแหน่งที่จะหาคำตอบสำหรับคำถามเกี่ยวกับ ลิงไฟ. ผู้ใช้ที่พูดภาษารัสเซียอยู่ในตำแหน่งพิเศษที่นี่

ขณะเตรียมงานคาร์คิฟซึ่งเป็นส่วนหนึ่งของ RAD Studio XE5 World Tour ฉันพบปัญหาเล็กน้อยในการทำงานกับ SQLiteโดยใช้ ไฟร์ดีเอซี. หากฐานข้อมูลที่กรอกในแอปพลิเคชัน Windows ถูกถ่ายโอนพร้อมกับแอปพลิเคชันไปยัง แอนดรอยด์, เส้นซีริลลิกในฐานข้อมูลไม่สามารถอ่านได้อีกต่อไป (เครื่องหมายคำถามจะแสดงแทนตัวอักษร) อย่างไรก็ตาม หากคุณกรอกฐานข้อมูลโดยตรงบนอุปกรณ์มือถือ อักขระรัสเซียจะอ่านได้ค่อนข้างถูกต้อง ข้อมูลจากฐานข้อมูลที่กรอก แอปพลิเคชันบุคคลที่สามหรือใน เดลฟีแอปพลิเคชันที่ใช้องค์ประกอบการเข้าถึงข้อมูลอื่น ๆ ก็แสดงตามปกติเช่นกัน การชุมนุมไม่สามารถหาทางออกได้ และฉันต้องอ้างอิงคำพูดของผู้เชี่ยวชาญฟุตบอลยูเครนที่มีชื่อเสียง: "เราจะหาทางแก้ไข!"

ซึ่งแตกต่างจากหลังฉันสามารถจัดการกับปัญหาที่อธิบายไว้ได้ ตามค่าเริ่มต้น เมื่อเชื่อมต่อกับ SQLiteวี ไฟร์ดีเอซีใช้รูปแบบสตริง ANSI

หากคุณบังคับ Unicode ทุกอย่างจะทำงานตามที่ควร แต่ก็มีช่วงเวลาที่ไม่พึงประสงค์ เมื่อเปลี่ยนรูปแบบของบรรทัดแล้ว คุณจะต้องสร้างรายการฟิลด์ในชุดข้อมูลทั้งหมดใหม่ รวมทั้งเชื่อมต่อส่วนประกอบที่รับผิดชอบในการแสดงและป้อนข้อมูลอีกครั้ง ดังนั้นจึงเป็นการดีกว่าที่จะดูแลการเข้ารหัสทันที

ในส่วนก่อนหน้านี้ของมินิซีรี่ส์นี้ เราได้จัดการกับการสร้างฐานข้อมูล โครงสร้าง และการเชื่อมต่อกับฐานข้อมูลจาก Delphi ในส่วนนี้ ผมขอเสนอให้จัดการกับการแสดงข้อมูลจากตาราง โดยเริ่มจากกรณีที่ง่ายที่สุด

โปรแกรมแก้ไขข้อมูลตารางอย่างง่ายมักเป็นส่วนหนึ่งของแอปพลิเคชันที่ซับซ้อน ในการแก้ไขตาราง ฉันมักจะใช้แบบฟอร์มแยกต่างหาก เริ่มจากรายการสินค้ากันก่อน ก่อนอื่น เราต้องสร้าง DataSet เพื่อเข้าถึงข้อมูลตาราง ในกรณีของเรา ค่อนข้างเป็นไปได้ที่จะใช้ส่วนประกอบ โต๊ะ. มาใส่ใน DataModule และระบุค่าของคุณสมบัติ การเชื่อมต่อ. ในตัวแก้ไขคุณสมบัติ ชื่อตารางรายการตารางจะปรากฏขึ้นซึ่งเราเลือกตาราง สินค้า. หากคุณทำทุกอย่างถูกต้อง คุณสามารถกำหนดคุณสมบัติได้ คล่องแคล่วมูลค่าที่แท้จริง เป็นการดีกว่าที่จะเปลี่ยนชื่อส่วนประกอบทันที (เช่น ADTProduct) หลังจากนั้น ฉันมักจะสร้างชุดของฟิลด์สำหรับชุดข้อมูล เราเรียกตัวแก้ไขฟิลด์ (ดับเบิลคลิกที่ส่วนประกอบ) และเลือกรายการเพิ่มฟิลด์ทั้งหมดในเมนูบริบท

สำหรับผู้ที่ไม่ทราบฉันจะอธิบายสาระสำคัญของการดำเนินการนี้ ที่นี่เราสร้างชุดฟิลด์ชุดข้อมูลที่กำหนดไว้ล่วงหน้า หากเราไม่ดำเนินการด้วยตนเองในโหมดการออกแบบ ตามหลักการแล้วจะไม่มีอะไรน่ากลัวเกิดขึ้น ที่ RunTime ชุดนี้จะถูกสร้างโดยอัตโนมัติ แต่ฉันยังต้องการสร้างด้วยตนเอง มีหลายสาเหตุนี้. ประการแรก การจัดการชุดของฟิลด์จะสะดวกกว่า เนื่องจากเราสามารถสร้างฟิลด์เพิ่มเติม (จากการคำนวณหรือค้นหา) ได้เองในโหมดการออกแบบ เรายังสามารถเปลี่ยนคุณสมบัติของเขตข้อมูลได้เอง และนอกจากนี้ เรายังมีโอกาสอ้างถึงฟิลด์ในโค้ดโดยใช้ชื่อส่วนประกอบ TField ซึ่งในความคิดของฉัน มันทำให้การเขียนโค้ดง่ายขึ้นอย่างมาก

ในกรณีของแอปพลิเคชัน VCL เราจะเชื่อมต่อส่วนประกอบกับชุดข้อมูล ทีดาต้าซอร์ส. ส่วนประกอบนี้จะให้การเชื่อมโยงระหว่างชุดข้อมูลและตัวควบคุมภาพ คุณสมบัติชุดข้อมูลของคอมโพเนนต์ควรอ้างอิงถึงชุดข้อมูลของเรา (ADTProduct) ด้านล่างฉันให้ส่วนของไฟล์ DFM

วัตถุ ADTProduct: TADTable IndexFieldNames = "ID" Connection = ADConnection UpdateOptions UpdateTableName = "ผลิตภัณฑ์" TableName = "ผลิตภัณฑ์" ซ้าย = 64 บนสุด = 192 วัตถุ ADTProductID: TADAutoIncField FieldName = "ID" ต้นทาง = "ID" ProviderFlags = [pfInWhere, pfInKey] ReadOnly = วัตถุสิ้นสุดจริง ADTProductTitle: TStringField FieldName = "Title" Origin = "Title" Size = 50 end object dsProduct: TDataSource DataSet = ADTProduct Left = 120 Top = 192 end

ให้ความสนใจกับฟีเจอร์ที่น่าสนใจอย่างหนึ่ง ไฟล์ฟอร์ม DataModule ไม่ได้บันทึกในรูปแบบ FMX เหมือนฟอร์ม FireMonkey ปกติ แต่อยู่ในรูปแบบ DFM เช่นใน VCL

ขั้นตอนต่อไปคือการสร้างขั้นตอนสำหรับการเปิดชุดข้อมูล ซึ่งเราจะต้องเรียกใช้ที่ RunTime เมื่อโปรแกรมเริ่มทำงาน มาสร้างใน DataModule เดียวกัน รหัสขั้นตอนนั้นง่ายมาก:

ขั้นตอน TDM ConnectToDB ; เริ่มการเชื่อมต่อ AD เปิด(); ผลิตภัณฑ์เอดีที. เปิด(); จบ ;

การเรียกขั้นตอนจะถูกวางไว้ในตัวจัดการเหตุการณ์ OnCreate สำหรับ DataModule

FireMonkey เป็นเทคโนโลยีหลักของ "New Delphi" โปรดบอกเราเกี่ยวกับเป้าหมาย ความสามารถ และด้านเทคนิคของห้องสมุดพื้นฐานใหม่นี้ เมื่อมองย้อนกลับไป การที่คุณปฏิเสธที่จะพัฒนา VCL ยอดนิยมต่อไปนั้นยากและสมเหตุสมผลแค่ไหน?

ได้รับเลือกให้เป็นทิศทางหลักในการพัฒนาเทคโนโลยี Delphi เพื่อให้บรรลุเป้าหมายเฉพาะ - การพัฒนาหลายแพลตฟอร์มจากสภาพแวดล้อมเดียวโดยใช้ฐานซอร์สโค้ดเดียวและไม่จำเป็นต้องมีการฝึกอบรมนักพัฒนาใหม่อย่างรุนแรง ภายใต้กรอบของ VCL ที่คลาสสิกและเป็นที่นิยมอย่างมากในขณะนี้ สิ่งนี้เป็นไปไม่ได้ การเชื่อมต่อกับ WinAPI นั้นใกล้ชิดเกินไป อาจกล่าวได้ว่า "ในระดับพันธุกรรม"

ส่วนประกอบ VCL ไม่มีเลเยอร์ "นามธรรม" ระหว่างระดับการทำงานในแง่ของอินเทอร์เฟซและกลไกการทำแผนที่ ระดับการทำงาน- ลักษณะการทำงานเป็นตัวควบคุม เหตุการณ์ใดที่มันตอบสนอง ประเภทของปฏิสัมพันธ์ของผู้ใช้ที่ให้ไว้ แสดง- การเรียกวิธีการเรนเดอร์ที่เน้นแพลตฟอร์มเป็นภาพประเภทหนึ่งที่เกิดจากวัตถุแรสเตอร์และเวกเตอร์ดั้งเดิม เริ่มแรก FireMonkey ใช้หลักการของการแบ่งส่วนควบคุมออกเป็นสองส่วนอย่างเคร่งครัด: "พฤติกรรม" และ "การมองเห็น"


Vsevolod Leonov, เอ็มบาร์คาเดโร เทคโนโลยีส์

อันแรกโดยรวมจะไม่ทำซ้ำแม้แต่พื้นฐานของ VCL แต่เป็นสาระสำคัญของการเขียนโปรแกรมเชิงวัตถุ คอมโพเนนต์คือคลาส คลาสคอมโพเนนต์สร้างลำดับชั้นที่สามารถแยกแยะตระกูลและโมดูลได้ คลาสของคอมโพเนนต์ไม่เกี่ยวข้องกับวิธีการเรนเดอร์

ภาพ "ภาพ" ถูกสร้างขึ้นแบบไดนามิก มันไม่ได้ฮาร์ดโค้ดในคลาสคอมโพเนนต์ รูปภาพหรือ "สไตล์" ใน FireMonkey ถูกโหลดลงในคอมโพเนนต์เมื่อแอปพลิเคชันเริ่มทำงาน เรามีกรอบการทำงานบางอย่างสำหรับส่วนประกอบ และสามารถเปลี่ยน "ผิว" หรือ "หุ้ม" ได้ แต่ทำไมล่ะ นั่นคือเหตุผลที่แอปพลิเคชัน FireMonkey ดูสมจริงบนทุกแพลตฟอร์ม - Windows 7, Windows 8, Mac OS, iOS และ Android ในอนาคตอันใกล้ โครงสร้างคลาส VCL แบบเสาหินแบบดั้งเดิมไม่สามารถให้สิ่งนี้ได้

วิธีการทางเทคโนโลยีมีบทบาทพิเศษที่นี่ โดยหลักการแล้ว คุณสามารถใช้ไลบรารี VCL และ WinAPI "สิ่งอื่นๆ" กับการเรียกแพลตฟอร์มอื่นๆ ที่เป็นไปได้ทั้งหมด ในคอมโพเนนต์ย่อยที่จำกัดมาก ยังสามารถทำได้ แต่ VCL มีคอมโพเนนต์หลายร้อยตัว ดังนั้นวิธีนี้อาจ "ฆ่า" VCL ได้ มีการตัดสินใจที่จะไม่แตะต้อง VCL และพัฒนาคุณสมบัติใหม่บนแพลตฟอร์มใหม่ - FireMonkey เทคโนโลยีนี้แม้จะมีความสง่างามทางเทคนิคบางอย่าง - ในขณะที่สร้างโครงการสำหรับแพลตฟอร์มเฉพาะ Delphi IDE จะเชื่อมต่อคอมไพเลอร์ที่จำเป็นและส่วนประกอบอินเทอร์เฟซจะได้รับรูปแบบแพลตฟอร์ม

สำหรับผู้ใช้ นี่เป็นการคลิกเมาส์เพียงครั้งเดียวและซอร์สโค้ดเดียวกัน สำหรับ Delphi นักพัฒนาต้องใช้เวลาหลายปีในการสร้างไลบรารีหลายแพลตฟอร์มเช่นนี้

เมื่อเห็นได้ชัดว่า FireMonkey จะเปิดตัวเป็นแพลตฟอร์มใหม่ที่แยกจากกัน จึงต้องเลือกกลยุทธ์การอยู่ร่วมกันที่เหมาะสม: Embarcadero ไม่ต้องการสร้างผลกระทบในทางลบต่อผู้ใช้ VCL แต่อย่างใด ดังนั้นเราจึงเลือกแผนดังต่อไปนี้: VCL ยังคงมีความเสถียรทางอุดมการณ์และสถาปัตยกรรมเพื่อให้แน่ใจว่ามีความเข้ากันได้มากที่สุดเท่าที่จะเป็นไปได้ ในขณะเดียวกันก็อำนวยความสะดวกในการโยกย้ายโครงการไปยังเวอร์ชันที่ทันสมัย การพัฒนา FireMonkey จะเป็นไปตามธรรมชาติและเส้นทางคู่ขนาน โดยไม่หันกลับมามองที่ VCL

จุดอ่อนของโซลูชันนี้คือการย้ายข้อมูลที่ค่อนข้างมีปัญหาจาก VCL ไปยัง FireMonkey ภายในโครงการเดียว แต่ในทางกลับกัน สำหรับโปรเจกต์ใหม่ นักพัฒนาสามารถเลือก FireMonkey เพื่อให้แน่ใจว่าแอปพลิเคชันที่เป็นผลลัพธ์มีลักษณะเป็นหลายแพลตฟอร์ม ด้วยการเปิดตัว XE4 พร้อมการรองรับ iOS เราสามารถพูดคุยเกี่ยวกับความได้เปรียบในการแข่งขันที่ชัดเจนของ Delphi ได้แล้ว การพัฒนามือถือในสภาพแวดล้อมขององค์กรซึ่งจะเพิ่มขึ้นหลังจากดำเนินการตามแผนการสนับสนุนสำหรับ Android

ดังนั้นจึงไม่มี "การปฏิเสธ" ที่ชัดเจนจากการพัฒนา VCL ในเวอร์ชันใหม่ ส่วน VCL ของ Delphi ก็ได้รับการพัฒนาเช่นกัน ซึ่งรวมถึงการสนับสนุน 64 บิตและการแนะนำสไตล์สำหรับองค์ประกอบภาพ และการใช้งานกลไกสำหรับลิงก์ไดนามิกที่ยืดหยุ่นหรือ "การเชื่อมโยง" และการรวมไลบรารี FireDAC สำหรับการทำงานกับฐานข้อมูลในโครงการ VCL เป็นเพียงว่าเมื่อเทียบกับฉากหลังของการก้าวกระโดดเชิงคุณภาพครั้งใหญ่เนื่องจาก FireMonkey ความคืบหน้าใน VCL ดูไม่เปิดเผย แต่อาจเป็นไปได้ว่า VCL เป็นส่วนสำคัญของ Delphi และจะยังคงเป็นเช่นนั้นไปอีกหลายปี แม้ว่าวิวัฒนาการของแพลตฟอร์มและสถานการณ์ปัจจุบันในด้านระบบปฏิบัติการสำหรับระบบเดสก์ท็อปและอุปกรณ์มือถือนั้นเป็นสิ่งที่อนาคตของ FireMonkey นั้นชัดเจน

ในการสัมภาษณ์ เราได้พูดคุยเกี่ยวกับการสนับสนุน iOS แล้ว เรามาบอกผู้อ่านของเราเกี่ยวกับการสนับสนุนของผู้อื่น เทคโนโลยีล่าสุดจาก RAD Studio XE4 ล่าสุด เช่น Windows 8 และ WinRT, ระบบ 64 บิต, MacOS และอื่นๆ คุณสามารถระบุสิ่งอื่นที่คุณสามารถเสนอให้กับโปรแกรมเมอร์สมัยใหม่ที่เสียนวัตกรรมได้หรือไม่?

เป็นไปได้มากว่าโปรแกรมเมอร์สมัยใหม่จะไม่ "เสีย" จากนวัตกรรม สำหรับโครงการขนาดใหญ่ "นวัตกรรม" ใดๆ มักจะกลายเป็นงานจำนวนมหาศาล

ตัวอย่างเช่น ทุกคนรอเป็นเวลานาน หลายคนรีบโอนรหัสของตนไปยังแพลตฟอร์มใหม่ทันที แต่ปรากฎว่าแม้แต่ทีมงานมืออาชีพก็ยังไม่พร้อมสำหรับสิ่งนี้ รหัส 64 บิตที่คอมไพล์ได้ไม่ได้หมายความว่าใช้งานได้ "บาปของเยาวชน" เริ่มปรากฏขึ้น เช่น การใช้คำสั่งสมมติขนาดแอดเดรส 4 ไบต์ การขาดวัฒนธรรมในการทำการทดสอบประกอบกับความไม่เต็มใจทางเทคโนโลยีที่จะใช้กระบวนการนี้ในเวลาอันสั้น

และที่นี่ - ยิ่งโครงการใหญ่ขึ้น เช่น วัดจากจำนวนบรรทัดของซอร์สโค้ด โปรแกรมเมอร์ที่ระมัดระวังและมีความสมดุลมากขึ้นจะจัดการกับนวัตกรรมประเภทต่างๆ ตั้งแต่การปรากฏของ "ปุ่ม" ในอินเทอร์เฟซไปจนถึง "วากยสัมพันธ์น้ำตาล" ในคอมไพเลอร์

หนึ่งในความสำเร็จที่ "เป็นปัญหา" เหล่านี้คือการเปิดตัว Windows 8 โดยส่วนตัวในฐานะผู้ใช้พีซีและผู้เชี่ยวชาญด้านไอทีสมัยใหม่ ฉันรู้สึกยินดีกับ Windows 8 แต่สำหรับนักพัฒนาที่ส่งชุดคอมพิวเตอร์ Windows 8 พร้อมข้อกำหนดทางเทคนิคสำหรับการพัฒนาภายใต้ระบบปฏิบัติการใหม่เป็นโหลด นั่นหมายถึงปัญหาบางอย่าง

เราพยายามให้การสนับสนุนการพัฒนาด้วยวิธีที่สะดวกสบายและไม่เจ็บปวดที่สุด อินเทอร์เฟซใหม่ระบบปฏิบัติการนี้ ดังนั้น จึงมีการนำสไตล์พิเศษมาใช้สำหรับทั้ง VCL และ FireMonkey และโปรแกรมเมอร์สามารถสร้างอินเทอร์เฟซแอปพลิเคชันใหม่หรือสร้างแอปพลิเคชันใหม่ที่จะแยกไม่ออกจากแอปพลิเคชัน "เนทีฟ" สำหรับ Windows 8 แน่นอนว่าต้องมี "เจ้าของภาษา" การสนับสนุน Windows 8 เนื่องจาก WinRT แต่ที่นี่การจัดลำดับความสำคัญของเป้าหมายใน เงื่อนไขที่ทันสมัย. Mac OS, iOS, Android ในอนาคตอันใกล้ยังไม่เปิดโอกาสให้พูดคุยเกี่ยวกับการรองรับ WinRT อย่างเต็มรูปแบบในอนาคตอันใกล้

แน่นอนว่าเป้าหมายเชิงกลยุทธ์ของ Embarcadero คือหลายแพลตฟอร์ม การเปิดตัว RAD Studio XE4 เป็นกุญแจสำคัญ สาเหตุหลักมาจาก รองรับ iOS. โปรแกรมเมอร์ที่ใช้งาน VCL สามารถเริ่มพัฒนาสำหรับ iOS ได้ในเวลาไม่กี่ชั่วโมง แม้แต่แอปพลิเคชันมือถือธรรมดาก็สามารถแปลงเป็นโครงการที่ทรงพลังซึ่งทำงานภายในโครงสร้างพื้นฐานที่มีอยู่ได้ทันที อย่าคิดว่านี่เป็นเพียงคอมไพเลอร์ใหม่สำหรับ FireMonkey และ สไตล์ใหม่เพื่อให้เข้ากับอินเทอร์เฟซ iOS

ซึ่งรวมถึงนักออกแบบภาพใหม่ การสนับสนุนในตัวสำหรับฟอร์มแฟกเตอร์ต่างๆ ไลบรารีการเข้าถึงข้อมูล รวมถึง FireDAC ใหม่ และเทคโนโลยี LiveBindings สำหรับการเชื่อมโยงกับข้อมูลองค์กรที่ยืดหยุ่นและไดนามิก นวัตกรรมทั้งหมดเหล่านี้มาพร้อมกัน - สำหรับ Windows และสำหรับ Mac OS และสำหรับ iOS ระบบปฏิบัติการ Mac OS ไม่ได้พัฒนาอย่างรวดเร็วดังนั้นจึงไม่มีปัญหาเช่นการเปลี่ยนจาก Windows 7 เป็น Windows 8 แต่จอภาพ Retina ปรากฏขึ้น และสิ่งนี้จำเป็นต้องได้รับการดูแลเป็นพิเศษ ตอนนี้แอปพลิเคชัน MacOS ใดๆ ที่สร้างใน Delphi XE4 จะมีสองสไตล์โดยอัตโนมัติ - "ปกติ" และ "ความละเอียดสูง"

ที่. แอปพลิเคชันเดียวกันสามารถมีอินเทอร์เฟซ "เนทีฟ" ที่มีคุณภาพเหมือนกันในทุกรายการ คอมพิวเตอร์ตั้งโต๊ะจากแอปเปิ้ล

Embarcadero ไม่ต้องการ "เซอร์ไพรส์" "ทึ่ง" หรือแม้แต่ "สร้างความบันเทิง" ให้กับนักพัฒนาด้วยการเปิดตัวนวัตกรรมใหม่ ในทางกลับกัน แวดวงไอทีเต็มไปด้วยความประหลาดใจต่างๆ อยู่แล้ว: อุปกรณ์ใหม่ แพลตฟอร์มใหม่ ผู้ใช้ใหม่ ความต้องการใหม่ สถานการณ์การโต้ตอบใหม่ เพิ่มเทคโนโลยีการพัฒนาซอฟต์แวร์ใหม่เข้าไป และโปรแกรมเมอร์จะไม่มีเวลาสร้างระบบใหม่และระบบที่มีอยู่ - พวกเขาจะทำเฉพาะการย้ายจากสภาพแวดล้อมหนึ่งไปยังอีกสภาพแวดล้อมหนึ่ง จากไลบรารีเก่าไปยังไลบรารีใหม่ จากภาษาหนึ่งเป็น อื่น.

แต่เราไม่สารภาพการปฏิเสธสิ่งใหม่ทั้งหมด เราเพียงต้องการให้แน่ใจว่าทุกอย่างมีความต่อเนื่อง - โค้ด อินเทอร์เฟซ โครงการ หรือแม้แต่ทักษะระดับมืออาชีพเมื่อแพลตฟอร์มและอุปกรณ์ใหม่ปรากฏขึ้น เราสามารถพูดได้ว่าเรากำลังต่อสู้กับแนวคิดอนุรักษนิยมที่ไม่ดีต่อสุขภาพที่เกี่ยวข้องกับแพลตฟอร์มใหม่โดยที่ค่าของแนวคิดอนุรักษ์นิยมที่ดีในเครื่องมือการพัฒนา อย่าคาดหวังผลิตภัณฑ์ที่แปลกใหม่ ภาษาโปรแกรมที่ไม่ได้มาตรฐาน และเครื่องมือการพัฒนาที่แปลกใหม่จาก Embarcadero

กับเราคุณจะพบกับการพัฒนาด้านภาพ ภาษาคลาสสิก โค้ด "เนทีฟ" และให้แพลตฟอร์มเป้าหมายสำหรับแอปพลิเคชันของคุณที่สร้างขึ้นด้วยวิธีคลาสสิกที่ได้รับการพิสูจน์แล้วเป็นสิ่งใหม่เสมอ

ลิงไฟคืออะไร?


FireMonkey (FMX) เป็นเฟรมเวิร์กสำหรับการพัฒนาข้ามแพลตฟอร์มสำหรับทั้งระบบเดสก์ท็อป (Windows, Mac OS + รองรับฝั่งเซิร์ฟเวอร์บน Linux ในอนาคตอันใกล้) และมือถือ (iOS และ Android) โดยใช้ภาษา Delphi/C++

ลักษณะเฉพาะ:

  • ฐานรหัสเดียวสำหรับทุกแพลตฟอร์ม

  • การควบคุมใดๆ (องค์ประกอบภาพ) สามารถเป็นคอนเทนเนอร์ (พาเรนต์) สำหรับส่วนประกอบอื่นๆ

  • การปรากฏตัวของการจัดเรียงแบบสัมพัทธ์ขั้นสูง (20 ประเภท) ของส่วนประกอบในแบบฟอร์ม

  • LiveBinding ช่วยให้คุณสามารถเชื่อมต่อข้อมูลประเภทใดก็ได้กับอินเทอร์เฟซผู้ใช้หรือวัตถุกราฟิก

  • การปรากฏตัวของรูปแบบ/ส่วนประกอบ;

  • Multi-Device Preview ให้คุณปรับแต่งการนำเสนอด้วยภาพสำหรับแต่ละแพลตฟอร์ม

  • FireUI Live Preview - แสดงมุมมองแอปบนอุปกรณ์จริงตามเวลาจริง

ความเป็นไปได้:

  • การใช้ Native API ของแต่ละแพลตฟอร์ม รวมถึงความสามารถในการเรียกไลบรารีเนทีฟของบุคคลที่สาม

  • การโต้ตอบกับเซ็นเซอร์ทั้งหมด (GPS, Accelerometer, Compass, Bluetooth (รวมถึง LE) และอื่น ๆ );

  • รองรับการแจ้งเตือนแบบพุช IoT;

  • รองรับคำขอ HTTP แบบอะซิงโครนัส

  • รองรับฐานข้อมูลส่วนใหญ่ (MsSQL, MySql, Oracle, PostgreSQL, MongoDB ฯลฯ );

  • ทำงานกับ Cloud Service (Amazon, Azure);

  • รองรับบริการ Android

ข้อเสีย (ปัจจุบัน):

  • ขาดการสนับสนุนการปรับแต่งคลาสเนทีฟ

  • การดำเนินการบางอย่างเป็นไปไม่ได้ (วิดเจ็ต, ส่วนขยาย (iOS) ฯลฯ ) หรือจำเป็นต้องมีการเต้นรำกับแทมบูรีน (บริการพื้นหลัง, ข้อความออกอากาศ ฯลฯ );

  • การปรับแต่งหน้าจอ Splash (หน้าจอเริ่มต้น) ที่จะใส่อย่างอ่อนโยน ไม่;

  • การควบคุม FMX ใช้การเรนเดอร์ของตัวเอง (การแสดงภาพ การวาด) ซึ่งมีความคล้ายคลึงกับเนทีฟอย่างแท้จริง

  • การใช้การควบคุมแบบเนทีฟนั้นสัมพันธ์กับการเคลื่อนไหวร่างกายขนาดใหญ่

  • ด้วยส่วนประกอบที่ซ้อนกันจำนวนมาก สิ่งที่น่าเหลือเชื่อจึงเกิดขึ้น: แอปพลิเคชันขัดข้องในที่ต่างๆ โฟกัสหลุด ค้าง ฯลฯ;

  • เนื้อหาข้อมูลของการดีบักแอปพลิเคชันบนแพลตฟอร์มมือถือเป็นศูนย์

  • คำอธิบายข้อผิดพลาดบนแพลตฟอร์มมือถือจะลดลงเป็น "ข้อผิดพลาด 0x00000X" ที่ไร้ประโยชน์

  • เวลาในการรวบรวมต้องการให้ดีที่สุดสำหรับโครงการขนาดกลางและขนาดใหญ่

  • ความต้องการใช้ไฟล์เพื่อปรับแต่งแอปพลิเคชันมือถือสำหรับแต่ละแพลตฟอร์ม

  • ไม่รองรับสถาปัตยกรรม Intel Atom;

  • ราคาไม่เพียงพอเมื่อเทียบกับคู่แข่ง

ข้อดี:

  • การพัฒนาล่าสุดอย่างแข็งขันทั้งผลิตภัณฑ์และชุมชน การสนับสนุนเทคโนโลยีใหม่มากขึ้นเรื่อยๆ

  • การมีส่วนประกอบฟรีและเชิงพาณิชย์จำนวนมาก

  • ความเร็วของแอปพลิเคชันนั้นใกล้เคียงกับเนทีฟมาก

  • โปรแกรมแก้ไขภาพและสภาพแวดล้อมขั้นสูงโดยทั่วไป การมีสไตล์;

  • ความสามารถในการทดสอบแอปพลิเคชันบน Win จากนั้นปรับใช้กับอุปกรณ์เท่านั้น ซึ่งช่วยเร่งการพัฒนาอย่างมาก

  • เปลี่ยนโหมด/แพลตฟอร์มด้วยการสะบัดข้อมือ

  • PAServer ให้การโต้ตอบที่ง่ายดายกับ MacO เมื่อพัฒนาสำหรับ Apple OS;

  • รองรับกราฟิก 3D นอกกรอบ

โดยสรุปฉันอยากจะบอกว่าในช่วงสองสามปีที่ผ่านมา FireMonkey ได้เติบโตขึ้นเป็นเครื่องมือระดับมืออาชีพสำหรับการพัฒนาแอปพลิเคชันทางธุรกิจข้ามแพลตฟอร์มและไม่เพียงเท่านั้น ข้อบกพร่องหลายอย่างกำลังค่อยๆ ได้รับการแก้ไข และในแต่ละรุ่นผลิตภัณฑ์จะมีความทันสมัยและพึ่งพาตนเองได้มากขึ้น ความสงสัยที่มีอยู่ต่อภาษาเดลฟีซึ่งเกี่ยวข้องกับความซบเซาหลายปีก็หายไปเช่นกัน การเขียนโครงการใหม่บน FireMonkey นั้น "ปลอดภัย" และมีแนวโน้มที่ดี



กำลังโหลด...
สูงสุด